cmake - CMake 顶级配置子模块
问题描述
我正在将 CMake 引入一个较旧的项目。一个目标是开始遵循良好的现代 CMake 原则——即从模块的角度思考。现代 CMake 的一个目标是让模块能够独立于顶层之外,顶层会通过add_subdirectory
.
该项目所做的一件事是定义一个基本上所有子模块都包含的 platform.h 文件。我认为这是一种反模式,因为它在错误的方向上创建了依赖关系——即较低层的库依赖于最顶层的文件。
我的问题 - 如果你想告诉子模块在编译时使用的各种设置,有没有现代的 CMake 方法来做到这一点?我想这类似于 Linux 内核在 kconfig 文件中设置值的方式,这些文件在 make config 期间在整个源代码中更新。那里也是影响子模块的顶层。
编辑:我知道您可以使用 cmake build 命令传递定义,但如果不止几个,它似乎很麻烦。
解决方案
推荐阅读
- amazon-web-services - 通过使用 Terraform 提供 AWS 区域,在现有 VPC 中预置 EC2
- python - 如何加快解析json和写入数据库的速度?
- php - 没有权限。无法将文件写入 COM4 的打印机
- ssl - JMX 通过 SSL 连接到 Gemfire
- python - I want to read from a file and scrape each URL
- sql - 识别函数何时在 SQL 查询或 PL/SQL 过程中执行
- c# - 如何从 API 中获取值?
- c# - 如何做一个滚动重复的游戏对象
- swift - 快速从 URL 的按钮上显示图像
- python - 在 Pandas 中分组后聚合具有不同功能的不同列集