mirror of
https://github.com/GerbilSoft/rvthtool.git
synced 2025-06-18 19:45:35 -04:00
Reverted back to the CheckC99CompilerFlag and CheckCXX11CompilerFlag macro files.
c_std_99 was added in CMake 3.8, which is a fairly recent version. Ubuntu 17.04 has CMake 3.9, but 16.10 has 3.7.2. Hence, we shouldn't use it in order to remain compatible with at least Ubuntu 16.04 LTS.
This commit is contained in:
parent
231445a69b
commit
f9fc1a0119
60
cmake/macros/CheckC99CompilerFlag.cmake
Normal file
60
cmake/macros/CheckC99CompilerFlag.cmake
Normal file
@ -0,0 +1,60 @@
|
||||
# - Check what flag is needed to activate C99 mode.
|
||||
# CHECK_C99_COMPILER_FLAG(VARIABLE)
|
||||
#
|
||||
# VARIABLE - variable to store the result
|
||||
#
|
||||
# This actually calls the check_c_source_compiles macro.
|
||||
# See help for CheckCSourceCompiles for a listing of variables
|
||||
# that can modify the build.
|
||||
|
||||
# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
# Based on CHECK_C_COMPILER_FLAG(). (CheckCCompilerFlag.cmake)
|
||||
|
||||
INCLUDE(CheckCSourceCompiles)
|
||||
|
||||
MACRO(CHECK_C99_COMPILER_FLAG _RESULT)
|
||||
# Flag listing borrowed from GNU autoconf's AC_PROG_CC_C99 macro.
|
||||
UNSET(${_RESULT})
|
||||
|
||||
# MSVC doesn't allow setting the C standard.
|
||||
IF(NOT MSVC)
|
||||
# Check if C99 is present without any flags.
|
||||
# gcc-5.1 uses C11 mode by default.
|
||||
MESSAGE(STATUS "Checking if C99 is enabled by default:")
|
||||
CHECK_C_SOURCE_COMPILES("
|
||||
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L
|
||||
#error C99 is not enabled
|
||||
#endif
|
||||
|
||||
int main() { return 0; }" CHECK_C99_ENABLED_DEFAULT)
|
||||
IF (${CHECK_C99_ENABLED_DEFAULT})
|
||||
UNSET(${_RESULT})
|
||||
MESSAGE(STATUS "Checking if C99 is enabled by default: yes")
|
||||
ELSE()
|
||||
MESSAGE(STATUS "Checking if C99 is enabled by default: no")
|
||||
MESSAGE(STATUS "Checking what CFLAG is required for C99:")
|
||||
FOREACH(CHECK_C99_CFLAG "-std=gnu99" "-std=c99" "-c99" "-AC99" "-xc99=all" "-qlanglvl=extc99")
|
||||
SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
|
||||
SET(CMAKE_REQUIRED_DEFINITIONS "${CHECK_C99_CFLAG}")
|
||||
CHECK_C_SOURCE_COMPILES("int main() { return 0; }" CFLAG_${CHECK_C99_CFLAG})
|
||||
SET(CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
|
||||
IF(CFLAG_${CHECK_C99_CFLAG})
|
||||
SET(${_RESULT} ${CHECK_C99_CFLAG})
|
||||
BREAK()
|
||||
ENDIF(CFLAG_${CHECK_C99_CFLAG})
|
||||
UNSET(CFLAG_${CHECK_C99_CFLAG})
|
||||
ENDFOREACH()
|
||||
|
||||
IF(${_RESULT})
|
||||
MESSAGE(STATUS "Checking what CFLAG is required for C99: ${${_RESULT}}")
|
||||
ELSE(${_RESULT})
|
||||
MESSAGE(STATUS "Checking what CFLAG is required for C99: none")
|
||||
ENDIF(${_RESULT})
|
||||
ENDIF()
|
||||
UNSET(CHECK_C99_ENABLED_DEFAULT)
|
||||
ENDIF(NOT MSVC)
|
||||
ENDMACRO (CHECK_C99_COMPILER_FLAG)
|
67
cmake/macros/CheckCXX11CompilerFlag.cmake
Normal file
67
cmake/macros/CheckCXX11CompilerFlag.cmake
Normal file
@ -0,0 +1,67 @@
|
||||
# - Check what flag is needed to activate C++ 2011 mode.
|
||||
# CHECK_CXX11_COMPILER_FLAG(VARIABLE)
|
||||
#
|
||||
# VARIABLE - variable to store the result
|
||||
#
|
||||
# This actually calls the check_c_source_compiles macro.
|
||||
# See help for CheckCSourceCompiles for a listing of variables
|
||||
# that can modify the build.
|
||||
|
||||
# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
|
||||
# C++ 2011 version Copyright (c) 2011 by David Korth.
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
# Based on CHECK_C99_COMPILER_FLAG(). (CheckC99CompilerFlag.cmake)
|
||||
|
||||
INCLUDE(CheckCXXSourceCompiles)
|
||||
|
||||
MACRO(CHECK_CXX11_COMPILER_FLAG _RESULT)
|
||||
UNSET(${_RESULT})
|
||||
|
||||
# MSVC doesn't allow setting the C standard.
|
||||
IF(NOT MSVC)
|
||||
# Check if C++ 2011 is present without any flags.
|
||||
# g++-5.1 uses C++ 1998 by default, but this may change
|
||||
# in future versions of gcc.
|
||||
MESSAGE(STATUS "Checking if C++ 2011 is enabled by default:")
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#if !defined(__cplusplus) || __cplusplus < 201103L
|
||||
#error C++ 2011 is not enabled
|
||||
#endif
|
||||
|
||||
int main() { return 0; }" CHECK_CXX11_ENABLED_DEFAULT)
|
||||
IF (${CHECK_CXX11_ENABLED_DEFAULT})
|
||||
UNSET(${_RESULT})
|
||||
MESSAGE(STATUS "Checking if C++ 2011 is enabled by default: yes")
|
||||
ELSE()
|
||||
MESSAGE(STATUS "Checking if C++ 2011 is enabled by default: no")
|
||||
MESSAGE(STATUS "Checking what CXXFLAG is required for C++ 2011:")
|
||||
FOREACH(CHECK_CXX11_CXXFLAG "-std=gnu++11" "-std=gnu++0x" "-std=c++11" "-std=c++0x")
|
||||
# CMake doesn't like "+" characters in variable names.
|
||||
STRING(REPLACE "+" "_" CHECK_CXX11_CXXFLAG_VARNAME "CHECK_CXXFLAG_${CHECK_CXX11_CXXFLAG}")
|
||||
|
||||
SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
|
||||
SET(CMAKE_REQUIRED_DEFINITIONS "${CHECK_CXX11_CXXFLAG}")
|
||||
CHECK_CXX_SOURCE_COMPILES("int main() { static_assert(0 == 0, \"test assertion\"); return 0; }" ${CHECK_CXX11_CXXFLAG_VARNAME})
|
||||
SET(CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
|
||||
|
||||
IF(${${CHECK_CXX11_CXXFLAG_VARNAME}})
|
||||
SET(${_RESULT} ${CHECK_CXX11_CXXFLAG})
|
||||
UNSET(${CHECK_CXX11_CXXFLAG_VARNAME})
|
||||
UNSET(CHECK_CXX11_CXXFLAG_VARNAME)
|
||||
BREAK()
|
||||
ENDIF(${${CHECK_CXX11_CXXFLAG_VARNAME}})
|
||||
UNSET(${CHECK_CXX11_CXXFLAG_VARNAME})
|
||||
UNSET(CHECK_CXX11_CXXFLAG_VARNAME)
|
||||
ENDFOREACH()
|
||||
IF(${_RESULT})
|
||||
MESSAGE(STATUS "Checking what CXXFLAG is required for C++ 2011: ${${_RESULT}}")
|
||||
ELSE(${_RESULT})
|
||||
MESSAGE(STATUS "Checking what CXXFLAG is required for C++ 2011: none")
|
||||
ENDIF(${_RESULT})
|
||||
ENDIF()
|
||||
UNSET(CHECK_CXX11_ENABLED_DEFAULT)
|
||||
ENDIF(NOT MSVC)
|
||||
ENDMACRO(CHECK_CXX11_COMPILER_FLAG)
|
@ -14,8 +14,16 @@ ENDIF()
|
||||
INCLUDE(CheckCCompilerFlag)
|
||||
INCLUDE(CheckCXXCompilerFlag)
|
||||
|
||||
SET(RP_C_FLAGS_COMMON "-D_GNU_SOURCE=1")
|
||||
SET(RP_CXX_FLAGS_COMMON "-D_GNU_SOURCE=1")
|
||||
# Check what flag is needed for C99 support.
|
||||
INCLUDE(CheckC99CompilerFlag)
|
||||
CHECK_C99_COMPILER_FLAG(RP_C99_CFLAG)
|
||||
|
||||
# Check what flag is needed for C++ 2011 support.
|
||||
INCLUDE(CheckCXX11CompilerFlag)
|
||||
CHECK_CXX11_COMPILER_FLAG(RP_CXX11_CXXFLAG)
|
||||
|
||||
SET(RP_C_FLAGS_COMMON "-D_GNU_SOURCE=1 ${RP_C99_CFLAG}")
|
||||
SET(RP_CXX_FLAGS_COMMON "-D_GNU_SOURCE=1 ${RP_CXX11_CXXFLAG}")
|
||||
SET(RP_EXE_LINKER_FLAGS_COMMON "")
|
||||
|
||||
UNSET(RP_C99_CFLAG)
|
||||
@ -31,7 +39,7 @@ FOREACH(FLAG_TEST "-Wall" "-Wextra" "-fstrict-aliasing" "-Wno-multichar")
|
||||
SET(RP_C_FLAGS_COMMON "${RP_C_FLAGS_COMMON} ${FLAG_TEST}")
|
||||
ENDIF(CFLAG_${FLAG_TEST})
|
||||
UNSET(CFLAG_${FLAG_TEST})
|
||||
|
||||
|
||||
CHECK_CXX_COMPILER_FLAG("${FLAG_TEST}" CXXFLAG_${FLAG_TEST})
|
||||
IF(CXXFLAG_${FLAG_TEST})
|
||||
SET(RP_CXX_FLAGS_COMMON "${RP_CXX_FLAGS_COMMON} ${FLAG_TEST}")
|
||||
|
@ -31,9 +31,6 @@ SET(librvth_H
|
||||
######################
|
||||
|
||||
ADD_LIBRARY(rvth STATIC ${librvth_SRCS} ${librvth_H})
|
||||
IF(NOT MSVC)
|
||||
TARGET_COMPILE_FEATURES(rvth PUBLIC c_std_99)
|
||||
ENDIF(NOT MSVC)
|
||||
|
||||
# Include paths:
|
||||
# - Public: Current source and binary directories.
|
||||
|
@ -12,9 +12,6 @@ ADD_EXECUTABLE(rvthtool
|
||||
${rvthtool_SRCS}
|
||||
${rvthtool_H}
|
||||
)
|
||||
IF(NOT MSVC)
|
||||
TARGET_COMPILE_FEATURES(rvthtool PUBLIC c_std_99)
|
||||
ENDIF(NOT MSVC)
|
||||
SET_TARGET_PROPERTIES(rvthtool PROPERTIES PREFIX "")
|
||||
DO_SPLIT_DEBUG(rvthtool)
|
||||
SET_WINDOWS_SUBSYSTEM(rvthtool CONSOLE)
|
||||
|
Loading…
Reference in New Issue
Block a user