是否可以在Visual Studio中将文件添加到CMake生成的解决方案文件夹中
Is it possible to add files to a CMake generated solution folder in Visual Studio?
这个问题或多或少是这个问题的热身:
如何让cmake将文件添加到msvcs解决方案树
它从来没有得到一个有效的答案,所以我想让它稍微不同一点:
是否可以使用cmake 2.8.3中引入的cmake解决方案文件夹将文件直接添加到vs解决方案中?我想做相当于VS->Solution->Add->Existing Item的cmake。因此,我的文件将出现在属于解决方案而不属于项目的文件夹中。
我发现了解决方案文件夹如何用于将目标分组到文件夹中的示例,代码如下:
set_property( GLOBAL PROPERTY USE_FOLDERS ON)
set_property(TARGET ${TARGET_NAME} PROPERTY FOLDER "Test")
那么,我可以在文件夹中添加一个文件而不是目标吗?
这可能是不可能的。
CMake将其资产组织为项目和目标。该项目对应于Visual Studio的解决方案文件,而每个目标都将在各自的解决方案中生成一个Visual Studio项目。
现在的问题是,CMake不允许将文件添加到CMake项目中。事实上,CMake项目只不过是目标的集合,几乎不提供任何自定义选项。因此,您提到的USE_FOLDERS
选项只能用于对解决方案中的VS项目进行分组,而不能用于对单个文件进行分组。
最接近您要求的可能是添加一个保存文件的自定义目标。然而,这仍然会在解决方案中生成一个VS项目(除了文件之外,它还包含一堆其他东西),而不是一个普通的文件夹。
如果我正确理解这个问题,我想我知道怎么做:
set(FILES_TO_ADD
file1
file2
file3)
source_group("Group Name" FILES ${FILES_TO_ADD})
source_group
命令在Visual Studio项目中创建文件夹。
这个答案只是在接受的答案中为ComicansMS提出的"自定义目标"解决方案添加了一个示例。这是我当前用于添加全局文件的内容。
set( SOLUTION_FILES
${CMAKE_SOURCE_DIR}/CMakeLists.txt # root CMakeLists file
${CMAKE_SOURCE_DIR}/cmake/macros.cmake # cmake functions
${CMAKE_SOURCE_DIR}/CMakeInCodeDefinitions.h.in # imported cmake variables
# etc...
)
add_custom_target( GlobalFiles SOURCES ${SOLUTION_FILES})
相关文章:
- 无法使用 CMake 从其他文件夹添加源文件
- 告诉CMake链接到自定义文件夹中的Boost
- 如何在 CMake 中设置此文件夹结构?
- 如何将图像文件夹添加到CMake项目以便在c ++可执行文件中使用这些图像?
- 如何在 CMake 中构建其他文件夹
- cmake find_package CMakeLists.txt 子文件夹中的相对路径
- CMake 子文件夹结构
- 如何将带有 sh 文件的文件夹添加到 cmake 以通过 system() 调用该文件
- CMake 插入不带文件夹前缀的项目文件
- 在 CMAKE 中包含来自 Android 项目不同文件夹的静态库
- 构建块的Cmake(文件夹包含源)
- 在cmake中,cmake文件夹和CMakeLists.txt可以位于不同的文件夹中
- CMake 测试来自不同文件夹的源
- Cmake 找不到提升文件夹
- CMake AUTOMOC使用不同文件夹中的文件
- 是否可以在Visual Studio中将文件添加到CMake生成的解决方案文件夹中
- 每次添加新的源子文件夹时,Cmake都会重新编译所有内容
- 如何使用 CMake 从根文件夹外部添加包含目录
- 移动 cmake 发布和调试文件夹
- 在调用 cmake 之前删除构建文件夹中的所有内容是否合理