我不明白我的CMakeLists.txt中的source_group命令.当我这样做时,它有效:
file(GLOB INPUT_HEAD KeyBoard.h Mouse.h)
source_group("Header Files\\Input" FILES ${INPUT_HEAD})
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
file(GLOB SHADERS ../Shaders/*.txt)
source_group("Source Files\\Shaders" FILES ${SHADERS})
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何建议?(我已阅读此命令的文档,我不明白为什么这不起作用)
Phi*_*hil 12
您需要使用实际目标中的文件.例如,它们必须在add_library或add_executable声明中使用,然后它们将位于该项目中的文件夹中.另外,我使用''/''而不是\\分隔符.您可能还希望使用set_property(GLOBAL PROPERTY USE_FOLDERS ON)预定义的cmake项目进入他们自己的解决方案文件夹.
自CMake 3.8起,有一个新命令可以根据相对于特定路径的文件夹结构自动过滤文件。
这是一个小示例,其中SRC_BUILD_FILES是包含要过滤的所有文件的集合。筛选是相对于某个基本路径发生的,在此示例中,该基本路径是使用CMAKE_CURRENT_SOURCE_DIR设置的,但可以是任何文件夹。可以将PREFIX名称(此处为Implementation)设置为您喜欢的名称,并将包含过滤后的设置。
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}"
PREFIX "Implementation"
FILES ${SRC_BUILD_FILES})
Run Code Online (Sandbox Code Playgroud)
因此,无需在cmake脚本中浏览或手动重新命名文件夹名称。
| 归档时间: |
|
| 查看次数: |
2369 次 |
| 最近记录: |