我不理解我的CMakeLists.txt中的source_group命令。 当我这样做时,它有效:
file(GLOB INPUT_HEAD KeyBoard.h Mouse.h)
source_group("Header Files\\Input" FILES ${INPUT_HEAD})
但这不起作用:
file(GLOB SHADERS ../Shaders/*.txt)
source_group("Source Files\\Shaders" FILES ${SHADERS})
有关如何解决此问题的任何建议? (我已阅读此命令的文档,我不明白为什么这不起作用)
答案 0 :(得分:10)
您需要使用实际目标中的文件。例如,它们必须在add_library
或add_executable
语句中使用,然后它们将位于该项目中的文件夹中。另外,我使用''/''而不是\\
作为分隔符。您可能还希望使用set_property(GLOBAL PROPERTY USE_FOLDERS ON)
将预定义的cmake项目放入他们自己的解决方案文件夹中。
答案 1 :(得分:3)
自CMake 3.8起,有一个新命令可以根据相对于特定路径的文件夹结构自动过滤文件。
这是一个小示例,其中SRC_BUILD_FILES是一个包含要过滤的所有文件的集合。筛选是相对于某个基本路径发生的,在此示例中,该基本路径是使用CMAKE_CURRENT_SOURCE_DIR设置的,但可以是任何文件夹。可以将PREFIX名称(此处为 Implementation )设置为您喜欢的名称,并将包含已过滤的设置。
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
User user = mDataset.get(position);
holder.userNameTextView.setText(user.getUsername());
String uri = user.getAvatarUri(); // or whatever you want
Glide.with(holder.itemView.getContext()).load(uri).into(holder.imageView);
}
因此,无需在cmake脚本中浏览或手动重复文件夹名称。
答案 2 :(得分:0)
在现代CMake中,您主要使用目标,以下功能可能会有用:
"ok" : 0,
"errmsg" : "Unknown type name alias: ensuite",
"code" : 2,
"codeName" : "BadValue"