This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via 9220290194fffec111890c28ff17ff0b79947a5b (commit) via 78b6017c86c7367bf7ef217e026c71435df491e2 (commit) via e9d1ae8c8e19d9a53933334311488c319ba7b783 (commit) from b5b7a7107955aaa704230378393745f1dffeddc1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9220290194fffec111890c28ff17ff0b79947a5b commit 9220290194fffec111890c28ff17ff0b79947a5b Merge: b5b7a71 78b6017 Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Fri Dec 16 11:17:42 2016 -0500 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Fri Dec 16 11:17:42 2016 -0500 Merge topic 'gcc-34-features' into next 78b6017c record features of gcc 3.4..4.3 e9d1ae8c use cxx_long_long_type instead of cxx_auto_type to check C++ compile features https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=78b6017c86c7367bf7ef217e026c71435df491e2 commit 78b6017c86c7367bf7ef217e026c71435df491e2 Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Thu Dec 15 22:54:41 2016 +0100 Commit: Rolf Eike Beer <e...@sf-mail.de> CommitDate: Fri Dec 16 17:17:31 2016 +0100 record features of gcc 3.4..4.3 This is not entirely complete, i.e. for some features the version they were introduced in is not set yet. This is just a first test to see what breaks. DO NOT MERGE YET. diff --git a/Modules/Compiler/GNU-C-FeatureTests.cmake b/Modules/Compiler/GNU-C-FeatureTests.cmake index b3fe33f..0ab5265 100644 --- a/Modules/Compiler/GNU-C-FeatureTests.cmake +++ b/Modules/Compiler/GNU-C-FeatureTests.cmake @@ -1,5 +1,5 @@ -set(_cmake_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 404") +set(_cmake_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 304") # GNU 4.7 correctly sets __STDC_VERSION__ to 201112L, but GNU 4.6 sets it # to 201000L. As the former is strictly greater than the latter, test only @@ -8,10 +8,10 @@ set(_cmake_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 404") # to the distinction between __cplusplus and __GXX_EXPERIMENTAL_CXX0X__ tests. set(GNU46_C11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L") set(_cmake_feature_test_c_static_assert "${GNU46_C11}") -# Since 4.4 at least: -set(GNU44_C99 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L") -set(_cmake_feature_test_c_restrict "${GNU44_C99}") -set(_cmake_feature_test_c_variadic_macros "${GNU44_C99}") +# Since 3.4 at least: +set(GNU34_C99 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L") +set(_cmake_feature_test_c_restrict "${GNU34_C99}") +set(_cmake_feature_test_c_variadic_macros "${GNU34_C99}") set(GNU_C90 "${_cmake_oldestSupported}") set(_cmake_feature_test_c_function_prototypes "${GNU_C90}") diff --git a/Modules/Compiler/GNU-C.cmake b/Modules/Compiler/GNU-C.cmake index 05c3bb2..3f02618 100644 --- a/Modules/Compiler/GNU-C.cmake +++ b/Modules/Compiler/GNU-C.cmake @@ -4,12 +4,12 @@ __compiler_gnu(C) if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.5) set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90") set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90") -elseif (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4) +elseif (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4) set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c89") set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu89") endif() -if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4) +if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4) set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99") set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99") endif() @@ -22,7 +22,7 @@ elseif (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.6) set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu1x") endif() -if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4) +if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4) if (NOT CMAKE_C_COMPILER_FORCED) if (NOT CMAKE_C_STANDARD_COMPUTED_DEFAULT) message(FATAL_ERROR "CMAKE_C_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_C_COMPILER_ID} (${CMAKE_C_COMPILER}) version ${CMAKE_C_COMPILER_VERSION}") @@ -38,10 +38,9 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4) endif() endif() - macro(cmake_record_c_compile_features) set(_result 0) - if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4) + if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4) if(_result EQUAL 0 AND CMAKE_C11_STANDARD_COMPILE_OPTION) _record_compiler_features_c(11) endif() diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake index d18adaf..eeee003 100644 --- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake +++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake @@ -2,7 +2,7 @@ # Reference: http://gcc.gnu.org/projects/cxx0x.html # http://gcc.gnu.org/projects/cxx1y.html -set(_cmake_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 404") +set(_cmake_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 304") set(GNU50_CXX14 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L") set(_cmake_feature_test_cxx_variable_templates "${GNU50_CXX14}") @@ -86,24 +86,24 @@ set(_cmake_feature_test_cxx_trailing_return_types "${GNU44_CXX11}") set(_cmake_feature_test_cxx_unicode_literals "${GNU44_CXX11}") set(_cmake_feature_test_cxx_uniform_initialization "${GNU44_CXX11}") set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}") -# TODO: If features are ever recorded for GNU 4.3, there should possibly +# There chould possibly # be a new feature added like cxx_variadic_template_template_parameters, # which is implemented by GNU 4.4, but not 4.3. cxx_variadic_templates is # actually implemented by GNU 4.3, but variadic template template parameters # 'completes' it, so that is the version we record as having the variadic # templates capability in CMake. See # http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf -# TODO: Should be supported by GNU 4.3 -set(GNU43_CXX11 "${_cmake_oldestSupported} && ${GNU_CXX0X_DEFINED}") +set(GNU43_CXX11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 403 && ${GNU_CXX0X_DEFINED}") set(_cmake_feature_test_cxx_decltype "${GNU43_CXX11}") set(_cmake_feature_test_cxx_default_function_template_args "${GNU43_CXX11}") -set(_cmake_feature_test_cxx_long_long_type "${GNU43_CXX11}") set(_cmake_feature_test_cxx_right_angle_brackets "${GNU43_CXX11}") set(_cmake_feature_test_cxx_rvalue_references "${GNU43_CXX11}") set(_cmake_feature_test_cxx_static_assert "${GNU43_CXX11}") +set(GNU34_CXX11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 304") # TODO: Should be supported since GNU 3.4? -set(_cmake_feature_test_cxx_extern_templates "${_cmake_oldestSupported} && ${GNU_CXX0X_DEFINED}") +set(_cmake_feature_test_cxx_extern_templates "${GNU44_CXX11}") # TODO: Should be supported forever? -set(_cmake_feature_test_cxx_func_identifier "${_cmake_oldestSupported} && ${GNU_CXX0X_DEFINED}") -set(_cmake_feature_test_cxx_variadic_macros "${_cmake_oldestSupported} && ${GNU_CXX0X_DEFINED}") +set(_cmake_feature_test_cxx_long_long_type "${_cmake_oldestSupported}") +set(_cmake_feature_test_cxx_func_identifier "${_cmake_oldestSupported}") +set(_cmake_feature_test_cxx_variadic_macros "${_cmake_oldestSupported}") set(_cmake_feature_test_cxx_template_template_parameters "${_cmake_oldestSupported} && __cplusplus") diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake index b04ea11..3ffb082 100644 --- a/Modules/Compiler/GNU-CXX.cmake +++ b/Modules/Compiler/GNU-CXX.cmake @@ -6,13 +6,13 @@ if (WIN32) set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fno-keep-inline-dllexport") endif() else() - if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.2) + if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4) set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden") endif() endif() -if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4) - # Supported since 4.3 +if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4) + # Supported since at least 3.4 set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98") set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98") endif() @@ -20,7 +20,7 @@ endif() if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7) set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11") set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11") -elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4) +elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.3) # 4.3 supports 0x variants set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x") set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x") @@ -39,7 +39,7 @@ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.1) set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z") endif() -if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4) +if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4) if (NOT CMAKE_CXX_COMPILER_FORCED) if (NOT CMAKE_CXX_STANDARD_COMPUTED_DEFAULT) message(FATAL_ERROR "CMAKE_CXX_STANDARD_COMPUTED_DEFAULT should be set for ${CMAKE_CXX_COMPILER_ID} (${CMAKE_CXX_COMPILER}) version ${CMAKE_CXX_COMPILER_VERSION}") @@ -53,7 +53,7 @@ endif() macro(cmake_record_cxx_compile_features) set(_result 0) - if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4) + if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4) if(_result EQUAL 0 AND CMAKE_CXX17_STANDARD_COMPILE_OPTION) _record_compiler_features_cxx(17) endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e9d1ae8c8e19d9a53933334311488c319ba7b783 commit e9d1ae8c8e19d9a53933334311488c319ba7b783 Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Fri Dec 16 16:53:39 2016 +0100 Commit: Rolf Eike Beer <e...@sf-mail.de> CommitDate: Fri Dec 16 17:17:31 2016 +0100 use cxx_long_long_type instead of cxx_auto_type to check C++ compile features Older gcc versions do not support auto, but already have some C++11 features available as extension. diff --git a/Tests/CMakeCommands/target_compile_features/CMakeLists.txt b/Tests/CMakeCommands/target_compile_features/CMakeLists.txt index 9b35f27..8a433cd 100644 --- a/Tests/CMakeCommands/target_compile_features/CMakeLists.txt +++ b/Tests/CMakeCommands/target_compile_features/CMakeLists.txt @@ -32,7 +32,7 @@ if (CMAKE_CXX_COMPILE_FEATURES) endif() add_executable(target_compile_features${target_suffix} main.cpp) target_compile_features(target_compile_features${target_suffix} - PRIVATE cxx_auto_type + PRIVATE cxx_long_long_type ) add_library(lib_auto_type lib_auto_type.cpp) diff --git a/Tests/CMakeCommands/target_compile_features/main.cpp b/Tests/CMakeCommands/target_compile_features/main.cpp index 6f5daee..aee232a 100644 --- a/Tests/CMakeCommands/target_compile_features/main.cpp +++ b/Tests/CMakeCommands/target_compile_features/main.cpp @@ -1,6 +1,6 @@ int main(int, char**) { - auto i = 0; - return i; + long long i = 1 << 31; + return (i << 1) == 0; } diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt index 0405def..fbd868f 100644 --- a/Tests/CompileFeatures/CMakeLists.txt +++ b/Tests/CompileFeatures/CMakeLists.txt @@ -278,7 +278,7 @@ if (CMAKE_CXX_COMPILE_FEATURES) add_executable(CompileFeatures main.cpp) set_property(TARGET CompileFeatures - PROPERTY COMPILE_FEATURES "cxx_auto_type" + PROPERTY COMPILE_FEATURES "cxx_long_long_type" ) set_property(TARGET CompileFeatures PROPERTY CXX_STANDARD_REQUIRED TRUE diff --git a/Tests/CompileFeatures/main.cpp b/Tests/CompileFeatures/main.cpp index c5a7a46..5472cab 100644 --- a/Tests/CompileFeatures/main.cpp +++ b/Tests/CompileFeatures/main.cpp @@ -1,6 +1,6 @@ int main(int, char**) { - auto value = 0; - return value; + long long value = 1 << 31; + return (value << 1) == 0; } ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits