¿Cómo le digo a CMake que use Clang en Windows?

 C Programming >> Programación C >  >> Tags >> Clang
¿Cómo le digo a CMake que use Clang en Windows?

También necesita, además de los propios compiladores de Clang, un entorno de compilación/enlace para Windows.

Las compilaciones más recientes de CMake 3.6 tienen varios entornos de compilación de Clang compatibles e integrados en Windows (por ejemplo, Visual Studio, Cygwin; consulte las Notas de la versión).

Acabo de realizar una prueba exitosa con

  • LLVM-3.9.0-r273898-win32.exe de http://llvm.org/builds/
  • cmake-3.6.0-rc4-win64-x64.msi de https://cmake.org/download/
  • Microsoft VS2015 Community Edition versión 14.0.23107.0

Todos instalados en sus rutas estándar con su bin directorios en el PATH global entorno.

La parte que necesita saber es configurar el conjunto de herramientas correcto con CMake -T"LLVM-vs2014" opción de línea de comando. Durante el proceso de configuración, CMake le permitirá saber qué compilador ha encontrado/tomado.

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)

Consola de Windows

...> 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!

Sugerencias de instalación

Tenga en cuenta que agregué LLVM a mis rutas de búsqueda durante la configuración:

Y puede verificar los "Conjuntos de herramientas de la plataforma" disponibles en la página de propiedades de cualquier proyecto VS:

Referencias

  • ¿Cuál es la definición -D para decirle a Cmake dónde encontrar nmake?
  • ¿Enlazador para Clang?
  • Cambiar entre GCC y Clang/LLVM usando CMake