【发布时间】:2018-10-29 07:23:32
【问题描述】:
我有以下问题:我使用 CMake 构建了一个 SDK。在构建过程中,由 custom_target 生成稍后发送给客户端的公共头文件。客户端应用程序需要此头文件,因此也需要作为 SDK 一部分提供的示例应用程序。因此,在我的构建系统中,示例应用程序当前表达了对生成标头的目标的依赖关系,以便在尝试构建示例应用程序之前生成它:
set(TARGET MyExample)
set(SOURCES ${TARGET}.cpp)
add_executable(${TARGET} ${SOURCES})
add_dependencies(${TARGET} InterfaceHeaderGenerator)
# ... more code
现在在客户端系统上,由“InterfaceGenerator”生成的文件当然已经存在,因此这种依赖是无效的。
我正在寻找一种能够将我的 CMake 文件发送给客户的方式,客户可以使用它们而无需为“开发”和“客户端”模式维护 2 个不同的 CMakeLists.txt 文件副本。
我知道这可能可以使用与 CPack 相关的生成器表达式来解决。但是我不能使用 CPack,因为它缺少我需要的另一个功能:能够在多个包中发布和安装相同的目标。
这可能吗?
【问题讨论】:
标签: cmake