如何在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"-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"-Hd:/dev/examine-Bd:/dev/exomine/build-G忍者
构建工作正常。我只需要从CMakeLists.txt中检测何时使用此工具集,并指定一些额外的选项。
注意:作为一种变通方法,我使用以下代码:
if(MSVC OR (CMAKE_CXX_COMPILER MATCHES "clang.exe$"))
add_compile_definitions(WIN32)
...