mirror of
https://github.com/libSDL2pp/libSDL2pp.git
synced 2025-09-10 07:50:06 -04:00
Merge branch 'c++1y-checks' into use_optional
This commit is contained in:
commit
0ff5d3cf33
@ -2,10 +2,17 @@ language: cpp
|
|||||||
compiler:
|
compiler:
|
||||||
- gcc
|
- gcc
|
||||||
- clang
|
- clang
|
||||||
|
env:
|
||||||
|
- SDL2PP_CSTD=c++11
|
||||||
|
- SDL2PP_CSTD=c++1y
|
||||||
before_install:
|
before_install:
|
||||||
- sudo add-apt-repository --yes ppa:zoogie/sdl2-snapshots
|
- sudo add-apt-repository --yes ppa:zoogie/sdl2-snapshots
|
||||||
- sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
|
- sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
|
||||||
- sudo apt-get update -qq
|
- sudo apt-get update -qq
|
||||||
- sudo apt-get install -qq cmake libsdl2-dev libsdl2-image-dev g++-4.8
|
- sudo apt-get install -qq cmake libsdl2-dev libsdl2-image-dev g++-4.8
|
||||||
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
|
- 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 && make && make test && make install
|
script:
|
||||||
|
- cmake . -DSDL2PP_ENABLE_GUI_TEST=OFF -DCMAKE_INSTALL_PREFIX=`pwd`/_prefix -DSDL2PP_WITH_WERROR=YES -DSDL2PP_CSTD=$SDL2PP_CSTD
|
||||||
|
- make
|
||||||
|
- make test
|
||||||
|
- make install
|
||||||
|
@ -16,6 +16,8 @@ SET(SDL2PP_VERSION "${SDL2PP_MAJOR_VERSION}.${SDL2PP_MINOR_VERSION}.${SDL2PP_PAT
|
|||||||
OPTION(SDL2PP_WITH_2_0_4 "Enable new functions available only in SDL2 2.0.4+" OFF)
|
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)
|
OPTION(SDL2PP_WITH_WERROR "Make warnings fatal" OFF)
|
||||||
|
|
||||||
|
SET(SDL2PP_CSTD "c++11" CACHE STRING "Used c++ standard")
|
||||||
|
|
||||||
IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
|
IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
|
||||||
OPTION(SDL2PP_WITH_IMAGE "Enable SDL2_image support" ON)
|
OPTION(SDL2PP_WITH_IMAGE "Enable SDL2_image support" ON)
|
||||||
ELSE(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
|
ELSE(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
|
||||||
@ -39,7 +41,7 @@ IF(MSVC)
|
|||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
|
||||||
SET(WERROR_FLAG "/WX")
|
SET(WERROR_FLAG "/WX")
|
||||||
ELSE(MSVC)
|
ELSE(MSVC)
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${SDL2PP_CSTD} -Wall -Wextra -pedantic")
|
||||||
SET(WERROR_FLAG "-Werror")
|
SET(WERROR_FLAG "-Werror")
|
||||||
ENDIF(MSVC)
|
ENDIF(MSVC)
|
||||||
|
|
||||||
@ -52,6 +54,19 @@ IF(SDL2PP_WITH_WERROR)
|
|||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WERROR_FLAG}")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WERROR_FLAG}")
|
||||||
ENDIF(SDL2PP_WITH_WERROR)
|
ENDIF(SDL2PP_WITH_WERROR)
|
||||||
|
|
||||||
|
# platform checks
|
||||||
|
INCLUDE(CheckCompile)
|
||||||
|
CHECK_COMPILE(
|
||||||
|
SDL2PP_WITH_EXPERIMENTAL_OPTIONAL
|
||||||
|
${PROJECT_SOURCE_DIR}/cmake/std_experimental_optional_test.cc
|
||||||
|
"Checking for experimental/optional header"
|
||||||
|
)
|
||||||
|
CHECK_COMPILE(
|
||||||
|
SDL2PP_WITH_DEPRECATED
|
||||||
|
${PROJECT_SOURCE_DIR}/cmake/attribute_deprecated_test.cc
|
||||||
|
"Checking for [[deprecated]] attribute"
|
||||||
|
)
|
||||||
|
|
||||||
# config.h
|
# config.h
|
||||||
CONFIGURE_FILE(
|
CONFIGURE_FILE(
|
||||||
SDL2pp/Config.hh.in
|
SDL2pp/Config.hh.in
|
||||||
@ -82,6 +97,7 @@ SET(LIBRARY_HEADERS
|
|||||||
SDL2pp/AudioSpec.hh
|
SDL2pp/AudioSpec.hh
|
||||||
SDL2pp/ContainerRWops.hh
|
SDL2pp/ContainerRWops.hh
|
||||||
SDL2pp/Exception.hh
|
SDL2pp/Exception.hh
|
||||||
|
SDL2pp/Optional.hh
|
||||||
SDL2pp/Point.hh
|
SDL2pp/Point.hh
|
||||||
SDL2pp/RWops.hh
|
SDL2pp/RWops.hh
|
||||||
SDL2pp/Rect.hh
|
SDL2pp/Rect.hh
|
||||||
|
@ -30,5 +30,13 @@
|
|||||||
|
|
||||||
#cmakedefine SDL2PP_WITH_IMAGE
|
#cmakedefine SDL2PP_WITH_IMAGE
|
||||||
#cmakedefine SDL2PP_WITH_2_0_4
|
#cmakedefine SDL2PP_WITH_2_0_4
|
||||||
|
#cmakedefine SDL2PP_WITH_EXPERIMENTAL_OPTIONAL
|
||||||
|
#cmakedefine SDL2PP_WITH_DEPRECATED
|
||||||
|
|
||||||
|
#if defined(SDL2PP_WITH_DEPRECATED)
|
||||||
|
# define SDL2PP_DEPRECATED [[deprecated]]
|
||||||
|
#else
|
||||||
|
# define SDL2PP_DEPRECATED
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -22,7 +22,26 @@
|
|||||||
#ifndef SDL2PP_OPTIONAL_HH
|
#ifndef SDL2PP_OPTIONAL_HH
|
||||||
#define SDL2PP_OPTIONAL_HH
|
#define SDL2PP_OPTIONAL_HH
|
||||||
|
|
||||||
#include <SDL2pp/libcpp_optional.hh>
|
#include <SDL2pp/Config.hh>
|
||||||
|
|
||||||
|
#if defined(SDL2PP_WITH_EXPERIMENTAL_OPTIONAL)
|
||||||
|
|
||||||
|
# include <experimental/optional>
|
||||||
|
|
||||||
|
namespace SDL2pp {
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
using Optional = std::experimental::optional<T>;
|
||||||
|
|
||||||
|
using BadOptionalAccess = std::experimental::bad_optional_access;
|
||||||
|
|
||||||
|
constexpr std::experimental::nullopt_t NullOpt = std::experimental::nullopt;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
# include <SDL2pp/external/libcpp_optional.hh>
|
||||||
|
|
||||||
namespace SDL2pp {
|
namespace SDL2pp {
|
||||||
|
|
||||||
@ -36,3 +55,5 @@ constexpr sdl2pp_libcpp_optional::nullopt_t NullOpt = sdl2pp_libcpp_optional::nu
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
11
cmake/CheckCompile.cmake
Normal file
11
cmake/CheckCompile.cmake
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
MACRO(CHECK_COMPILE RESULT_VAR SOURCE_FILE DESCRIPTION)
|
||||||
|
SET(SAVED_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WERROR_FLAG}")
|
||||||
|
TRY_COMPILE(${RESULT_VAR} ${CMAKE_BINARY_DIR} ${SOURCE_FILE})
|
||||||
|
IF(${RESULT_VAR})
|
||||||
|
MESSAGE(STATUS "${DESCRIPTION}: yes")
|
||||||
|
ELSE(${RESULT_VAR})
|
||||||
|
MESSAGE(STATUS "${DESCRIPTION}: no")
|
||||||
|
ENDIF(${RESULT_VAR})
|
||||||
|
SET(CMAKE_CXX_FLAGS "${SAVED_CXX_FLAGS}")
|
||||||
|
ENDMACRO(CHECK_COMPILE)
|
7
cmake/attribute_deprecated_test.cc
Normal file
7
cmake/attribute_deprecated_test.cc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[[deprecated]]
|
||||||
|
void f() {
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
return 0;
|
||||||
|
}
|
8
cmake/std_experimental_optional_test.cc
Normal file
8
cmake/std_experimental_optional_test.cc
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#include <experimental/optional>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
std::experimental::optional<std::string> o;
|
||||||
|
|
||||||
|
return !o;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user