2013/9/11 Miller Henry <[email protected]>: > We are using cmake 2.8.11 for out project. > > Our local compiler is gcc-4.4.3. There is desire to use a newer compiler, > but we are not yet ready to commit to anything yet. In the mean time we > have installed binaries gcc-4.7 and gcc-4.8. We can specify the alternate > compiler with –DCMAKE_C_COMPILER=gcc-4.7, but we want to go a step farther: > one (believed important) advantage of gcc-4.7 is the option -mtune=atom > since that is are target system. We want to force this option when using the > newer compiler, but the older version of gcc doesn’t accept it. > > Toolchain files are not an option, when you use a toolchain file cmake sets > CMAKE_CROSSCOMPILING meaning parts of our system that depend on running on > x86 will not run. (it is up to a different team to make a build for other > processors – they are nowhere close to done but that variable is used in a > few places to disable things that my team needs). > > Here is what we come up with, which both feels icky, and seems like a bad > compromise: > > IF("4.8.0" STREQUAL ${CMAKE_CXX_COMPILER_VERSION} OR "4.8.1" STREQUAL > ${CMAKE_CXX_COMPILER_VERSION} OR "4.8" STREQUAL ${USE_GCC_VERSION}) > SET(CMAKE_CXX_COMPILER "g++-4.8") > SET(CMAKE_C_COMPILER "gcc-4.8") > SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11") > SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs" > CACHE STRING "" FORCE) > ELSEIF("4.7.1" STREQUAL ${CMAKE_CXX_COMPILER_VERSION} OR "4.7.2" STREQUAL > ${CMAKE_CXX_COMPILER_VERSION} OR "4.7" STREQUAL ${USE_GCC_VERSION}) > SET(CMAKE_CXX_COMPILER "g++-4.7") > SET(CMAKE_C_COMPILER "gcc-4.7") > ENDIF("4.8.0" STREQUAL ${CMAKE_CXX_COMPILER_VERSION} OR "4.8.1" STREQUAL > ${CMAKE_CXX_COMPILER_VERSION} OR "4.8" STREQUAL ${USE_GCC_VERSION}) >
As for me coding any compiler options into CMake files is an urgly idea. -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
