我们有一组cross-platform CMake build scripts,我们支持使用Visual C++和GCC构建 .
我们正在尝试Clang,但我无法弄清楚如何测试编译器是否与我们的CMake脚本一起使用 .
我应该测试什么来查看编译器是否是Clang?我们目前正在使用MSVC和CMAKE_COMPILER_IS_GNU<LANG>分别测试Visual C和GCC .
我们有一组cross-platform CMake build scripts,我们支持使用Visual C++和GCC构建 .
我们正在尝试Clang,但我无法弄清楚如何测试编译器是否与我们的CMake脚本一起使用 .
我应该测试什么来查看编译器是否是Clang?我们目前正在使用MSVC和CMAKE_COMPILER_IS_GNU<LANG>分别测试Visual C和GCC .
4 回答
可靠的检查是使用CMAKE_<LANG>_COMPILER_ID变量 . 例如,检查C编译器:
如果使用像ccache这样的编译器包装器,它们也可以正常工作 .
截至CMake 3.0.0,Apple提供的Clang的
CMAKE_<LANG>_COMPILER_ID
值现在为AppleClang
. 要测试Apple提供的Clang和常规Clang,请使用以下if条件:另见AppleClang policy description .
OGRE 3D引擎源代码使用以下check:
为了避免任何拼写错误的问题,我使用这个:
为了使正则表达式不敏感,我尝试了所有事情here没有成功(似乎在CMake中不支持) .
这是cmake新手的一个稍微更详细的答案,根据sakra的回答修改,只需将以下行附加到
CMakeLists.txt
:然后在CMakeLists.txt所在的文件夹中运行
cmake .
. 然后你会看到一堆输出和你的答案 .