cmake 如何判断环境所使用的编译器?

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 社区给我们的启发。