如何为依赖目标添加 cmake 定义?

Posted

技术标签:

【中文标题】如何为依赖目标添加 cmake 定义?【英文标题】:How to add cmake definitions for a dependency target? 【发布时间】:2017-01-16 16:35:21 【问题描述】:

我有一个链接到动态库依赖项 B 的可执行文件 A。一切都在正确编译和链接,但现在我想在我的 CMakeLists.txt 中为 B 依赖项设置一个 cmake 定义,我该怎么做?

要恢复,现在我每次都必须这样做:

cmake -DBLIBRARY_BUILD_TESTS=0 .

我想将 -DBLIBRARY_BUILD_TESTS=0 放在我的 CMakeLists.txt 中,以始终将该标志设置为 0 来配置 B 依赖项,以执行此操作:

cmake .

【问题讨论】:

我的问题不是如何添加编译定义,而是如何添加 cmake 定义。也许我对“定义”术语有误,也许它是一个 cmake 变量? set(LIBRARY_BUILD_TESTS 0) 我会将其添加为默认为 ON 的 cmake 选项。这样,在 cmake-gui 中,用户可以根据需要更改默认值,cmake.org/cmake/help/v3.0/command/option.html 好吧,煤渣饼干是对的.. >_<.> 【参考方案1】:

要定义 CMake 变量,您需要像这样 SET 它们:

SET(LIBRARY_BUILD_TESTS 0)

或者如果是布尔值:

SET(LIBRARY_BUILD_TESTS OFF)

如果这应该是用户可配置的,请使用OPTION

OPTION(LIBRARY_BUILD_TESTS "Build library tests" OFF)

【讨论】:

以上是关于如何为依赖目标添加 cmake 定义?的主要内容,如果未能解决你的问题,请参考以下文章

如何为“类似boost”的多组件库编写cmake模块?

如何为蒸汽添加新的依赖项?

如何为 meta.yaml 中定义的目标安装要求

cmake-buildsystem

CMake基础教程(30)CMake构建系统概览

CMake基础教程(30)CMake构建系统概览