cmake - 如何判断变量来自哪里?
问题描述
我有一个目录CMakeLists.txt
。它调用module1.cmake
位于其他地方的 CMake 模块文件。
module1.cmake
将引用一个名为 的变量XXX
,该变量可能来自:
- 环境变量
%XXX%
。 - 命令行通过
cmake -D XXX=
XXX
在调用目录的CMakeLists.txt
through中定义set()
。- 以及之前配置的构建文件夹中的 CACHE 条目
然后module1.cmake
将变量存储XXX
到CACHE中。
在module1.cmake
文件中,我需要告诉XXX
来自哪里,因为我需要区别对待它们。
对于 1,我可以检查 的值$ENV{XXX}
。
对于 4,我正在考虑使用get_property(cached_XXX CACHE XXX PROPERTY VALUE)
并检查cached_XXX
. 但事实证明,该-D XXX=
选项总是更新 CACHE 条目。所以我无法判断该cached_XXX
值是来自旧 CACHE 还是来自当前-D
选项。
所以毕竟,我怎么能分辨2, 3 和 4?
解决方案
推荐阅读
- java - 如何在我的 spring boot 项目中使用soap的客户端?
- jestjs - 带有 FeathersJS NeDB 服务的 Jest v27 FSREQCALLBACK 警告
- django - Postgres:在搜索之前清理字符串
- javascript - Webpack 动态导入图片导致入口点大小大幅增加
- jquery - 在 Angular 中使用 Jquery 进行图库过滤不起作用
- spring - @Order 编号的 Spring 验证
- flask - 如何格式化时间以在烧瓶中显示?
- phpstorm - 当在 web 请求中启用 Xdebug 时,它不会跳过并在每一行中断并进入 PhpStorm 中的每个函数
- azure - Azure 部署中心的 CI/CD 失败,因为存储库名称必须小写
- c++ - 如何打印销售员班的每个销售员的姓名?