【发布时间】:2014-09-11 08:04:26
【问题描述】:
我的项目依赖于一个大型的 3rd 方库 (OpenMVG)。
目前它没有安装。官方搭建说明推荐使用add_subdirectory。
因此我的CMakeLists.txt 包含以下几行
add_subdirectory(${OpenMVG_DIR}/src "${CMAKE_BINARY_DIR}/openMVG")
include_directories(${OpenMVG_INCLUDES})
add_executable(f_matching f_matching.cpp)
target_link_libraries(f_matching ${OpenMVG_LIBS})
我的平台是 Visual Studio,生成的解决方案在顶层包含 72 个项目。我想使用FOLDER CMake 属性在层次结构中组织它。例如,我想将所有 OpenMVG 的项目移动到单独的 VS 解决方案文件夹中。
但是,正如 CMake 文档所述,此属性只能分配给目标,而不能分配给目录。
我的CMakeLists.txt 包含
set_property(DIRECTORY ${OpenMVG_DIR}/src PROPERTY FOLDER OpenMVG)
但是这条线什么也不做,没有解决方案文件夹出现。
我尝试通过在目标上设置 FOLDER 属性来修改几个 OpenMVG 的 CMakeLists,这很有效。
在不从 OpenMVG 更改 CMakeLists 的情况下,是否有针对这种情况的解决方法? 目前,我想把时间花在其他任务上,并将这个简单的编辑推迟到以后。
【问题讨论】:
-
从您自己的 CMakeLists 中为所有 72 个 OpenMVG 目标调用
set_property有什么问题?当然,这有点乏味,但你只需要做一次。 -
是的,没有错。已经这样做了。
标签: visual-studio cmake