如何使用commnd line(CMake)跳过某些目标

如何使用commnd line(CMake)跳过某些目标,cmake,xerces-c,Cmake,Xerces C,我对Xerces-c++有依赖性,对于instaltarget,它总是构建示例可执行文件和文档。这将消耗约50%的构建时间(在我的构建VM上为6分钟) 我当前的构建命令是cmake--build${proj}\build${platform}--config RelWithDebInfo--target install--parallel 如何跳过非必要目标 这是第三方依赖关系,因此我不想根据源代码修改CMakeLists.txt,因为没有控制示例生成的选项 add_subdirectory(s

我对Xerces-c++有依赖性,对于
instal
target,它总是构建示例可执行文件和文档。这将消耗约50%的构建时间(在我的构建VM上为6分钟)

我当前的构建命令是
cmake--build${proj}\build${platform}--config RelWithDebInfo--target install--parallel

如何跳过非必要目标


这是第三方依赖关系,因此我不想根据源代码修改
CMakeLists.txt

,因为没有控制示例生成的选项

add_subdirectory(samples)
参考:

但是你可以修补它

option(BUILD_SAMPLES "Build samples" ON)
message(STATUS "Build samples: ${BUILD_SAMPLES}")
...
if(BUILD_SAMPLES)
  add_subdirectory(samples)
endif()

注意:如果您有一个超级版本,您也可以启用CMP0077…

Xerces-c++似乎不允许您跳过版本测试。您所能做的最好是为库提供修复程序。按照最佳实践,这将在
if(BUILD\u TESTING)
@havogt中包装对
add\u子目录(tests)
的调用。是否还有其他目标可用?如何找到可用的目标?顺便说一句,它是
samples
,而不是
tests
。当使用
Makefile
生成器时,您可以调用
makehelp
列出所有可用的目标。@arrowd我正在使用Visual studio生成器。没有帮助目标。然后可以在解决方案资源管理器窗口中查看目标列表-解决方案下的每个项目都对应一个目标。