From 4444fde9d7dc8a4b060e97bac7235aba37de02dd Mon Sep 17 00:00:00 2001 From: Didier Raboud Date: Thu, 10 Jan 2013 09:48:15 +0100 Subject: Use correct C++11/C++0x flags depending on the used compiler See http://gcc.gnu.org/projects/cxx0x.html for details. --- CMakeLists.txt | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 674c627..2e309d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,29 +46,34 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE debug) endif() -# Global compile flags -# These are specific to GCC/MinGW/clang; for other compilers, change as necessary -# The flags are used throughout src/ subdir -set(COLOBOT_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast -std=c++11") -set(COLOBOT_CXX_FLAGS_RELEASE "-O2") -set(COLOBOT_CXX_FLAGS_DEBUG "-g -O0") - # Compiler detection if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") execute_process( COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) - if (NOT (GCC_VERSION VERSION_GREATER 4.6 OR GCC_VERSION VERSION_EQUAL 4.6)) - message(FATAL_ERROR "${PROJECT_NAME} requires GCC 4.6 or greater.") - else() + if (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7) + message(STATUS "Detected GCC version 4.7+") + set(CXX11_FLAGS "-std=c++11") + elseif (GCC_VERSION VERSION_GREATER 4.6 OR GCC_VERSION VERSION_EQUAL 4.6) message(STATUS "Detected GCC version 4.6+") + set(CXX11_FLAGS "-std=c++0x") + else() + message(FATAL_ERROR "${PROJECT_NAME} requires GCC 4.6 or greater.") endif() elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") message(STATUS "Detected Clang compiler") + set(CXX11_FLAGS "-std=c++11") else() message(FATAL_ERROR "Your C++ compiler doesn't seem to support C++11.\n" "Supported compilers at this time are GCC 4.6+ and clang.") endif() +# Global compile flags +# These are specific to GCC/MinGW/clang; for other compilers, change as necessary +# The flags are used throughout src/ subdir +set(COLOBOT_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast ${CXX11_FLAGS}") +set(COLOBOT_CXX_FLAGS_RELEASE "-O2") +set(COLOBOT_CXX_FLAGS_DEBUG "-g -O0") + # Asserts can be enabled/disabled regardless of build type option(ASSERTS "Enable assert()s" ON) -- cgit v1.2.3-1-g7c22 From d221233436063d83f920731c83582ca115c93b6d Mon Sep 17 00:00:00 2001 From: Didier Raboud Date: Thu, 10 Jan 2013 09:49:25 +0100 Subject: Enable clang build in travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 9690ccf..772f403 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: cpp compiler: - gcc + - clang script: cmake . -DCMAKE_VERBOSE_MAKEFILE=ON && make all doc test before_install: - git submodule update --init --recursive -- cgit v1.2.3-1-g7c22 From f7f4bd945ce20b26f13c4ea90feffa8e6ebf3038 Mon Sep 17 00:00:00 2001 From: Didier Raboud Date: Thu, 10 Jan 2013 10:36:46 +0100 Subject: In travis, do out-of-tree build --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 772f403..442ccdd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: cpp compiler: - gcc - clang -script: cmake . -DCMAKE_VERBOSE_MAKEFILE=ON && make all doc test +script: mkdir build; cd build; cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON && make all doc test before_install: - git submodule update --init --recursive - sudo apt-get update -qq -- cgit v1.2.3-1-g7c22 From e39e802d8314042bc8126484a71cee3952360a59 Mon Sep 17 00:00:00 2001 From: Didier Raboud Date: Thu, 10 Jan 2013 10:37:16 +0100 Subject: Also test intallation --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 442ccdd..bb99d26 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: cpp compiler: - gcc - clang -script: mkdir build; cd build; cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON && make all doc test +script: mkdir build; cd build; cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON && make all doc test && DESTDIR=. make install before_install: - git submodule update --init --recursive - sudo apt-get update -qq -- cgit v1.2.3-1-g7c22 From 0f74cf96b784b59853e7fe44dc2c89d48785cf46 Mon Sep 17 00:00:00 2001 From: Didier Raboud Date: Thu, 10 Jan 2013 11:07:20 +0100 Subject: In travis, add boost backport from Mapnik to succeed clang build --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index bb99d26..96a7443 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ compiler: script: mkdir build; cd build; cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON && make all doc test && DESTDIR=. make install before_install: - git submodule update --init --recursive + - sudo add-apt-repository ppa:mapnik/boost -y - sudo apt-get update -qq - sudo apt-get install -qq --no-install-recommends libgl1-mesa-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libpng12-dev libglew-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev google-mock libgtest-dev doxygen graphviz po4a librsvg2-bin notifications: -- cgit v1.2.3-1-g7c22