向CMake介绍一个新的编译器

时间:2016-07-29 16:43:14

标签: c++ cmake

我们使用特定的编译器,称为Cadul。它有自己的库,目标等。问题是CMake不支持它,而不是这样的"标准"编译器如GNU,Intel,Clang等。

首先,我认为使用交叉编译但它没有用,因为主机和目标平台是相同的。

然后我查看了模块,在那里我找到了名为" Compiler"的目录。其中包含很多" .cmake"为每个编译器和每个启用的语言指定的文件。我试图用'#34; GNU" by" Cadul"并希望看到任何变化,例如" CXX编译器标识是Cadul ..."。但它并没有发生。

然后我刚刚删除了整个目录" Modules"来自cmake并希望看到它不再起作用。令人惊讶的确如此。

那么有没有人有新的编译器集成到Cmake?具有自己的功能等。

2 个答案:

答案 0 :(得分:0)

评论中似乎已经建议这样做了,但还没有人将它浓缩成答案。

您可以通过将这些行添加到CMakeLists.txt(source)来选择编译器:

SET(CMAKE_C_COMPILER /path/to/c/compiler)
SET(CMAKE_CXX_COMPILER /path/to/cpp/compiler)

如果您需要进一步自定义,使用工具链文件效果很好。文档here中有一些示例。

答案 1 :(得分:0)

是的,我以前做过这个。但是你需要更多的东西,只需设置编译器路径(因为CMake会尝试识别这个编译器,然后 - 因为CMake不知道 - 会引发错误)。

新的“编译器”的示例实现可以在我的答案中找到:

它显示了可以用enable_language(FOO)替换的enable_language(Cadul)示例。