Quantcast
Channel: Recent Questions - Stack Overflow
Viewing all articles
Browse latest Browse all 11661

Switching between GCC and Clang/LLVM using CMake

$
0
0

I have a number of projects built using CMake and I'd like to be able to easily switch between using GCC or Clang/LLVM to compile them. I believe (please correct me if I'm mistaken!) that to use Clang I need to set the following:

    SET (CMAKE_C_COMPILER             "/usr/bin/clang")    SET (CMAKE_C_FLAGS                "-Wall -std=c99")    SET (CMAKE_C_FLAGS_DEBUG          "-g")    SET (CMAKE_C_FLAGS_MINSIZEREL     "-Os -DNDEBUG")    SET (CMAKE_C_FLAGS_RELEASE        "-O4 -DNDEBUG")    SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")    SET (CMAKE_CXX_COMPILER             "/usr/bin/clang++")    SET (CMAKE_CXX_FLAGS                "-Wall")    SET (CMAKE_CXX_FLAGS_DEBUG          "-g")    SET (CMAKE_CXX_FLAGS_MINSIZEREL     "-Os -DNDEBUG")    SET (CMAKE_CXX_FLAGS_RELEASE        "-O4 -DNDEBUG")    SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")    SET (CMAKE_AR      "/usr/bin/llvm-ar")    SET (CMAKE_LINKER  "/usr/bin/llvm-ld")    SET (CMAKE_NM      "/usr/bin/llvm-nm")    SET (CMAKE_OBJDUMP "/usr/bin/llvm-objdump")    SET (CMAKE_RANLIB  "/usr/bin/llvm-ranlib")

Is there an easy way of switching between these and the default GCC variables, preferably as a system-wide change rather than project specific (i.e. not just adding them into a project's CMakeLists.txt)?

Also, is it necessary to use the llvm-* programs rather than the system defaults when compiling using clang instead of gcc? What's the difference?


Viewing all articles
Browse latest Browse all 11661

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>