Improve handling of c++11/14 standard flag

This commit is contained in:
Dmitry Marakasov 2015-05-14 03:04:09 +03:00
parent b53a272d98
commit 31fd50fe61
2 changed files with 12 additions and 7 deletions

View File

@ -3,8 +3,8 @@ compiler:
- gcc
- clang
env:
- SDL2PP_CXXSTD=c++11
- SDL2PP_CXXSTD=c++1y
- CMAKEFLAGS="-DSDL2PP_WITH_CXX14=YES"
- CMAKEFLAGS="-DSDL2PP_WITH_CXX14=NO"
before_install:
- sudo add-apt-repository --yes ppa:zoogie/sdl2-snapshots
- sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
@ -14,7 +14,7 @@ before_install:
- sudo sed -i -e 's|friend class hash|friend struct hash|' /usr/include/c++/4.8/bits/stl_bvector.h
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
script:
- cmake . -DSDL2PP_ENABLE_GUI_TEST=OFF -DCMAKE_INSTALL_PREFIX=`pwd`/_prefix -DSDL2PP_WITH_WERROR=YES -DSDL2PP_CXXSTD=$SDL2PP_CXXSTD
- cmake . -DSDL2PP_ENABLE_GUI_TEST=OFF -DCMAKE_INSTALL_PREFIX=`pwd`/_prefix -DSDL2PP_WITH_WERROR=YES $CMAKEFLAGS
- make && make test && make install
- cppcheck -I . --enable=style,performance,portability,information,missingInclude --error-exitcode=2 SDL2pp
- if make doxygen 2>&1 | grep 'warning:'; then false; else true; fi

View File

@ -1,7 +1,7 @@
PROJECT(libSDL2pp)
# meta
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
@ -15,8 +15,7 @@ SET(SDL2PP_VERSION "${SDL2PP_MAJOR_VERSION}.${SDL2PP_MINOR_VERSION}.${SDL2PP_PAT
# we hide these under following options
OPTION(SDL2PP_WITH_2_0_4 "Enable new functions available only in SDL2 2.0.4+" OFF)
OPTION(SDL2PP_WITH_WERROR "Make warnings fatal" OFF)
SET(SDL2PP_CXXSTD "c++11" CACHE STRING "Used c++ standard")
OPTION(SDL2PP_WITH_CXX14 "Use c++14 features" OFF)
IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
OPTION(SDL2PP_WITH_IMAGE "Enable SDL2_image support" ON)
@ -47,11 +46,17 @@ ENDIF(SDL2PP_WITH_TTF)
FIND_PACKAGE(Doxygen)
# compiler flags & definitions
IF(SDL2PP_WITH_CXX14)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX14_STANDARD_COMPILE_OPTION}")
ELSE(SDL2PP_WITH_CXX14)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX11_STANDARD_COMPILE_OPTION}")
ENDIF(SDL2PP_WITH_CXX14)
IF(MSVC)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
SET(WERROR_FLAG "/WX")
ELSE(MSVC)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${SDL2PP_CXXSTD} -Wall -Wextra -pedantic")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic")
SET(WERROR_FLAG "-Werror")
ENDIF(MSVC)