cmake 如何判断环境所使用的编译器?
2024-11-24 发布53 浏览 · 0 点赞 · 0 收藏
在 KiwiDB 与 DangalDB 中,cmake 都作为一种重要的项目构建工具而存在着。
而本篇文章将会谈论一个简单的应用,即如何让 cmake 能够了解到目前我们正在使用的编译环境。
GNUInstallDirs 简介
在 cmake 中,GNUInstallDirs 模块就承担着这样的职责,它将会帮助我们检测 GNU 标准下,相关编译套件的所在地址。
(页面参考 https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html)
正式应用于实践:只需要 include 即可
使用 GNUInstallDirs 的方法,非常简单,只需要我们在 CMakeLists.txt 中增加一行有关的 include 语句,就可以得到我们想要的结果。
最终测试
注意到上述文件的最后一行 MESSAGE 了吗?这是我们要求 cmake 输出变量乃至于其它自定义数据的语句,此处使用了 CMAKE_CXX_COMPLIER_ID,它是一个 cmake 内部的变量(但是会随着环境而动态变化),具体数据参考如下:
(页面地址参考 https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html)
(最终代码的运行结果,GNU 在 cmake 中代表的就是 GNU Compiler Collection)
写在最后
非常感谢开放原子开源基金会张凯老师的大力支持,非常感谢 KiwiDB 社区给我们的启发。