我的项目依赖于大型第三方库(OpenMVG)。 目前尚未安装。官方建筑说明建议与add_subdirectory
一起使用。在CMake中为第三方库设置解决方案文件夹属性
因此我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'有什么问题?当然,这有点乏味,但你只需要做一次。 – ComicSansMS 2014-09-11 08:39:07
是的,没有错。已经这样做了。 – wl2776 2014-09-11 09:17:41