【发布时间】:2012-04-20 05:26:29
【问题描述】:
我们有一组cross-platform CMake build scripts,我们支持用Visual C++和GCC构建。
我们正在尝试Clang,但我不知道如何使用我们的 CMake 脚本测试编译器是否为 Clang。
我应该测试一下编译器是否是 Clang?我们目前正在使用MSVC 和CMAKE_COMPILER_IS_GNU<LANG> 分别测试Visual C++ 和GCC。
【问题讨论】:
-
您可以通过将 CMAKE_C_COMPILER 和 CMAKE_CXX_COMPILER 设置为 clang 或 clang++ 的路径来设置编译器。 +1 铿锵声。
-
你为什么要关心?就可接受的编译器选项而言,Clang 非常类似于 GCC ...
-
@BasileStarynkevitch 由于我们支持 MSVC,我们需要检测 Clang,因此我们知道是打开类似 GCC 的选项,还是打开类似 MSVC 的选项。我记起来太久了,但我们当然也有可能使用了 Clang 不支持的选项。
-
@BasileStarynkevitch - Clang 伪装成
__GNUC__和_MSC_VER,但它不能使用与任一编译器相同的程序。检测 LLVM Clang 和 Apple Clang 对于确保代码按预期编译和执行至关重要。我已经厌倦了与 Clang 的 BS 打交道,我们只是 break the compile on Windows。我们采用了让用户向 LLVM 投诉的政策,以便 Clang 开发人员改变他们的行为。另见How to tell Clang to stop pretending to be other compilers?