【问题标题】:How to skip some targets using commnd line (CMake)如何使用命令行(CMake)跳过一些目标
【发布时间】:2020-10-07 15:28:27
【问题描述】:

我依赖于 Xerces-c++,对于 instal 目标,它总是构建示例可执行文件和文档。这会消耗大约 50% 的构建时间(在我的构建 VM 上需要 6 分钟)。

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

如何跳过非必要目标?

它是第三方依赖,所以我不想修改CMakeLists.txt

【问题讨论】:

  • 看来 Xerces-c++ 不允许您跳过构建测试。您能做的最好的事情就是为库提供修复。按照最佳实践,这会将对 add_subdirectory(tests) 的调用包装在 if(BUILD_TESTING) 中。
  • @havogt 可能还有其他可用的目标吗?我怎样才能找到可用的目标?顺便说一句,这是samples,而不是tests
  • 使用Makefile生成器时,可以调用make help列出所有可用目标。
  • @arrowd 我正在使用 Visual Studio 生成器。没有帮助目标。
  • 然后可以在解决方案资源管理器窗口中观察到目标列表——你的解决方案下的每个项目都对应一个目标。

标签: cmake xerces-c


【解决方案1】:

根据来源,没有选项可以控制样本的构建

add_subdirectory(samples)

参考:https://github.com/apache/xerces-c/blob/master/CMakeLists.txt#L172

但你可以修补它!

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

注意:如果你有超级版本,你也可以启用 CMP0077...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-25
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    相关资源
    最近更新 更多