diff --git a/.travis.yml b/.travis.yml index 7df93e2..cda476b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e61e8b..6af5e3a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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)