I have a C++ project that builds using CMake. I usually build on OSX but now I am trying to get a Windows version working too. I would like to use Clang on Windows for compatibility reasons.
I installed the pre-compiled Clang 3.8 binary from LLVM:
C:\Program Files\LLVM\bin\clang.exe C:\Program Files\LLVM\bin\clang++.exe
It is also installed on my PATH:
>clang++ clang++.exe: error: no input files
I have two questions:
clang++
when I call cmake --build
?To configure a Visual Studio project to use Clang, right-click on the project node in Solution Explorer and choose Properties. Typically, you should first choose All configurations at the top of the dialog. Then, under General > Platform Toolset, choose LLVM (clang-cl) and then OK.
Open a terminal window. Enter the command (clang — version) to confirm if the Clang Compilers had already been installed.
You also need - in addition to the Clang compilers itself - an build/link environment for Windows.
The latest CMake 3.6 builds do have several integrated supported Clang build environments on Windows (e.g. Visual Studio, Cygwin; see Release Notes).
I've just run a successful test with
All installed to their standard paths with their bin
directories in the global PATH
environment.
The part you need to know is setting the right toolset with the CMake -T"LLVM-vs2014"
command line option. During the configuration process CMake will let you know which compiler it has found/taken.
CMakeLists.txt
cmake_minimum_required(VERSION 3.6) project(HelloWorld) file( WRITE main.cpp "#include <iostream>\n" "int main() { std::cout << \"Hello World!\" << std::endl; return 0; }" ) add_executable(${PROJECT_NAME} main.cpp)
Windows Console
...> mkdir VS2015 ...> cd VS2015 ...\VS2015> cmake -G"Visual Studio 14 2015" -T"LLVM-vs2014" .. -- The C compiler identification is Clang 3.9.0 -- The CXX compiler identification is Clang 3.9.0 -- Check for working C compiler: C:/Program Files (x86)/LLVM/msbuild-bin/cl.exe -- Check for working C compiler: C:/Program Files (x86)/LLVM/msbuild-bin/cl.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: C:/Program Files (x86)/LLVM/msbuild-bin/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/LLVM/msbuild-bin/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: .../VS2015 ...\VS2015> cmake --build . Microsoft (R)-Buildmodul, Version 14.0.23107.0 [...] ...\VS2015> Debug\HelloWorld.exe Hello World!
Installation Hints
Please note that I have added LLVM to my search paths during setup:
And you can crosscheck the available "Platform Toolsets" in any VS project's property page:
References
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With