如何在CMakeLists中检测Visual Studio LLVM工具集



如何在CMakeLists.txt中检测到使用了Visual Studio Clang工具集,而不是Linux上的Clang?使用Visual Studio Clang工具集时,我需要指定特定于Visual Studio标头的额外标志(如_CRT_SECURE_NO_WARNINGS(。

进一步信息:

该工具集是Visual Studio Community 2019预览版,版本16.10.0预览版3.0(带有适用于Windows 10.0.0的C++Clang Tools(。

为了构建,我使用了带有插件CMake 0.0.17和CMake Tools 1.7.2的Visual Studio Codium 1.56.2。

VSCode CMake插件自动检测Visual Studio Clang工具集,当我选择它时,它会使用以下命令构建:

D: \dev_tools\cmake\bin\cmake。EXE—无警告未使用cli-DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE&quot-DCMAKEC_COMPILER:FILEPATH=C:\Program Files(x86(\Microsoft Visual Studio\2019\Preview\VC\Tools\Llvm\x64\bin\crang.exe"quot-DCMAKE_CX_COMPILER:FILEPATH=C:\Program Files(x86(\Microsoft Visual Studio\2019\Preview\VC\Tools\Llvm\x64\bin\crang.exe&quot-Hd:/dev/examine-Bd:/dev/exomine/build-G忍者

构建工作正常。我只需要从CMakeLists.txt中检测何时使用此工具集,并指定一些额外的选项。

注意:作为一种变通方法,我使用以下代码:

if(MSVC OR (CMAKE_CXX_COMPILER MATCHES "clang.exe$"))
add_compile_definitions(WIN32)
...

最新更新