mirror of
https://github.com/reactos/CMake.git
synced 2024-12-03 00:57:25 +00:00
faeddf64f2
Add a feature test using the compiler macros and the preprocessor to determine available features. Add a CMAKE_CXX_COMPILE_FEATURES variable which contains all features known to the loaded compiler, and a CMAKE_CXX_KNOWN_FEATURES variable containing all features known to CMake. Add language standard specific variables for internal use to determine the standard-specific compile flags to use. This will be extended to other languages in the future. Follow-up commits will add features which will be recorded by the feature test.
44 lines
1.4 KiB
CMake
44 lines
1.4 KiB
CMake
|
|
#=============================================================================
|
|
# Copyright 2013 Stephen Kelly <steveire@gmail.com>
|
|
#
|
|
# Distributed under the OSI-approved BSD License (the "License");
|
|
# see accompanying file Copyright.txt for details.
|
|
#
|
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
# See the License for more information.
|
|
#=============================================================================
|
|
# (To distribute this file outside of CMake, substitute the full
|
|
# License text for the above reference.)
|
|
|
|
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_CXX11_COMPILE_FEATURES)
|
|
|
|
include("${CMAKE_ROOT}/Modules/Internal/FeatureTesting.cmake")
|
|
|
|
cmake_record_cxx_compile_features()
|
|
|
|
if(NOT _result EQUAL 0)
|
|
message(STATUS "Detecting ${lang} compile features - failed")
|
|
return()
|
|
endif()
|
|
|
|
if(NOT CMAKE_CXX_COMPILE_FEATURES)
|
|
set(CMAKE_CXX_COMPILE_FEATURES
|
|
${CMAKE_CXX11_COMPILE_FEATURES}
|
|
)
|
|
endif()
|
|
|
|
set(CMAKE_CXX_COMPILE_FEATURES ${CMAKE_CXX_COMPILE_FEATURES} PARENT_SCOPE)
|
|
set(CMAKE_CXX11_COMPILE_FEATURES ${CMAKE_CXX11_COMPILE_FEATURES} PARENT_SCOPE)
|
|
|
|
message(STATUS "Detecting ${lang} compile features - done")
|
|
endif()
|
|
|
|
endfunction()
|