mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-05 14:18:35 -06:00
Merge topic 'cxx98-features'
a36b957f Features: Add cxx_template_template_parameters.
This commit is contained in:
@@ -3,6 +3,7 @@ set(CMAKE_CXX_COMPILER_ARG1 "@CMAKE_CXX_COMPILER_ARG1@")
|
||||
set(CMAKE_CXX_COMPILER_ID "@CMAKE_CXX_COMPILER_ID@")
|
||||
set(CMAKE_CXX_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@")
|
||||
set(CMAKE_CXX_COMPILE_FEATURES "@CMAKE_CXX_COMPILE_FEATURES@")
|
||||
set(CMAKE_CXX98_COMPILE_FEATURES "@CMAKE_CXX98_COMPILE_FEATURES@")
|
||||
set(CMAKE_CXX11_COMPILE_FEATURES "@CMAKE_CXX11_COMPILE_FEATURES@")
|
||||
|
||||
set(CMAKE_CXX_PLATFORM_ID "@CMAKE_CXX_PLATFORM_ID@")
|
||||
|
||||
@@ -17,6 +17,7 @@ function(cmake_determine_compile_features lang)
|
||||
if(lang STREQUAL CXX AND COMMAND cmake_record_cxx_compile_features)
|
||||
message(STATUS "Detecting ${lang} compile features")
|
||||
|
||||
set(CMAKE_CXX98_COMPILE_FEATURES)
|
||||
set(CMAKE_CXX11_COMPILE_FEATURES)
|
||||
|
||||
include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
|
||||
@@ -28,13 +29,19 @@ function(cmake_determine_compile_features lang)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (CMAKE_CXX98_COMPILE_FEATURES)
|
||||
list(REMOVE_ITEM CMAKE_CXX11_COMPILE_FEATURES ${CMAKE_CXX98_COMPILE_FEATURES})
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_CXX_COMPILE_FEATURES)
|
||||
set(CMAKE_CXX_COMPILE_FEATURES
|
||||
${CMAKE_CXX98_COMPILE_FEATURES}
|
||||
${CMAKE_CXX11_COMPILE_FEATURES}
|
||||
)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_COMPILE_FEATURES ${CMAKE_CXX_COMPILE_FEATURES} PARENT_SCOPE)
|
||||
set(CMAKE_CXX98_COMPILE_FEATURES ${CMAKE_CXX98_COMPILE_FEATURES} PARENT_SCOPE)
|
||||
set(CMAKE_CXX11_COMPILE_FEATURES ${CMAKE_CXX11_COMPILE_FEATURES} PARENT_SCOPE)
|
||||
|
||||
message(STATUS "Detecting ${lang} compile features - done")
|
||||
|
||||
@@ -74,4 +74,5 @@ set(_cmake_feature_test_cxx_extern_templates "${_oldestSupported} && __cplusplus
|
||||
# TODO: Should be supported forever?
|
||||
set(_cmake_feature_test_cxx_func_identifier "${_oldestSupported} && __cplusplus >= 201103L")
|
||||
set(_cmake_feature_test_cxx_variadic_macros "${_oldestSupported} && __cplusplus >= 201103L")
|
||||
set(_cmake_feature_test_cxx_template_template_parameters "${_oldestSupported} && __cplusplus >= 199711L")
|
||||
set(_oldestSupported)
|
||||
|
||||
@@ -27,10 +27,14 @@ endif()
|
||||
macro(cmake_record_cxx_compile_features)
|
||||
macro(_get_gcc_features std_version list)
|
||||
record_compiler_features(CXX "-std=${std_version}" ${list})
|
||||
if (NOT _result EQUAL 0)
|
||||
return()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
if (UNIX AND NOT APPLE AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
|
||||
_get_gcc_features(c++11 CMAKE_CXX11_COMPILE_FEATURES)
|
||||
_get_gcc_features(c++98 CMAKE_CXX98_COMPILE_FEATURES)
|
||||
else()
|
||||
set(_result 0)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user