mirror of
https://github.com/libSDL2pp/libSDL2pp.git
synced 2025-08-06 04:15:59 -04:00
More fixes for compiler feature detection
This commit is contained in:
parent
e3feb2f7a4
commit
bee32f54da
@ -80,13 +80,13 @@ INCLUDE_DIRECTORIES(SYSTEM ${SDL2_ALL_INCLUDE_DIRS})
|
|||||||
INCLUDE(CheckCompile)
|
INCLUDE(CheckCompile)
|
||||||
CHECK_COMPILE(
|
CHECK_COMPILE(
|
||||||
SDL2PP_WITH_EXPERIMENTAL_OPTIONAL
|
SDL2PP_WITH_EXPERIMENTAL_OPTIONAL
|
||||||
${PROJECT_SOURCE_DIR}/cmake/std_experimental_optional_test.cc
|
"#include <experimental/optional>\nint main() { std::experimental::optional<int> o; return !o; }"
|
||||||
"Checking for experimental/optional header"
|
"experimental/optional header"
|
||||||
)
|
)
|
||||||
CHECK_COMPILE(
|
CHECK_COMPILE(
|
||||||
SDL2PP_WITH_DEPRECATED
|
SDL2PP_WITH_DEPRECATED
|
||||||
${PROJECT_SOURCE_DIR}/cmake/attribute_deprecated_test.cc
|
"[[deprecated]]\nstatic void f() {} int main() { return 0; }"
|
||||||
"Checking for [[deprecated]] attribute"
|
"[[deprecated]] attribute"
|
||||||
)
|
)
|
||||||
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2PP_WARNINGS}")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2PP_WARNINGS}")
|
||||||
|
@ -2,11 +2,12 @@ INCLUDE(CheckCXXCompilerFlag)
|
|||||||
|
|
||||||
MACRO(APPEND_CXX_FLAG_IF_SUPPORTED FLAG VARIABLE)
|
MACRO(APPEND_CXX_FLAG_IF_SUPPORTED FLAG VARIABLE)
|
||||||
UNSET(HAS_FLAG CACHE)
|
UNSET(HAS_FLAG CACHE)
|
||||||
|
SET(SAVED_CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET})
|
||||||
SET(CMAKE_REQUIRED_QUIET YES)
|
SET(CMAKE_REQUIRED_QUIET YES)
|
||||||
CHECK_CXX_COMPILER_FLAG(${FLAG} HAS_FLAG)
|
CHECK_CXX_COMPILER_FLAG(${FLAG} HAS_FLAG)
|
||||||
SET(CMAKE_REQUIRED_QUIET NO)
|
SET(CMAKE_REQUIRED_QUIET ${SAVED_CMAKE_REQUIRED_QUIET})
|
||||||
IF(HAS_FLAG)
|
IF(HAS_FLAG)
|
||||||
SET(VARIABLE "${VARIABLE} ${FLAG}")
|
SET(${VARIABLE} "${${VARIABLE}} ${FLAG}")
|
||||||
MESSAGE(STATUS "Checking for ${FLAG}: yes")
|
MESSAGE(STATUS "Checking for ${FLAG}: yes")
|
||||||
ELSE(HAS_FLAG)
|
ELSE(HAS_FLAG)
|
||||||
MESSAGE(STATUS "Checking for ${FLAG}: no")
|
MESSAGE(STATUS "Checking for ${FLAG}: no")
|
||||||
|
@ -1,11 +1,16 @@
|
|||||||
MACRO(CHECK_COMPILE RESULT_VAR SOURCE_FILE DESCRIPTION)
|
INCLUDE(CheckCXXSourceCompiles)
|
||||||
SET(SAVED_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SDL2PP_WERROR_FLAG}")
|
MACRO(CHECK_COMPILE RESULT_VAR CODE DESCRIPTION)
|
||||||
TRY_COMPILE(RESULT_VAR ${CMAKE_BINARY_DIR} ${SOURCE_FILE})
|
SET(SAVED_CMAKE_REQUIRED_QUIET "${CMAKE_REQUIRED_QUIET}")
|
||||||
IF(RESULT_VAR)
|
SET(SAVED_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
||||||
MESSAGE(STATUS "${DESCRIPTION}: yes")
|
SET(CMAKE_REQUIRED_QUIET YES)
|
||||||
ELSE(RESULT_VAR)
|
SET(CMAKE_REQUIRED_FLAGS "${SDL2PP_WERROR_FLAG}")
|
||||||
MESSAGE(STATUS "${DESCRIPTION}: no")
|
CHECK_CXX_SOURCE_COMPILES("${CODE}" ${RESULT_VAR})
|
||||||
ENDIF(RESULT_VAR)
|
SET(CMAKE_REQUIRED_QUIET "${SAVED_CMAKE_REQUIRED_QUIET}")
|
||||||
SET(CMAKE_CXX_FLAGS "${SAVED_CXX_FLAGS}")
|
SET(CMAKE_REQUIRED_FLAGS "${SAVED_CMAKE_REQUIRED_FLAGS}")
|
||||||
|
IF(${RESULT_VAR})
|
||||||
|
MESSAGE(STATUS "Checking for ${DESCRIPTION}: yes")
|
||||||
|
ELSE(${RESULT_VAR})
|
||||||
|
MESSAGE(STATUS "Checking for ${DESCRIPTION}: no")
|
||||||
|
ENDIF(${RESULT_VAR})
|
||||||
ENDMACRO(CHECK_COMPILE)
|
ENDMACRO(CHECK_COMPILE)
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
[[deprecated]]
|
|
||||||
static void f() {
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
#include <experimental/optional>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
std::experimental::optional<std::string> o;
|
|
||||||
|
|
||||||
return !o;
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user