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 65aadbed2e3361519eec9a32a3250976c0ae04ed (commit) via 5b5bdb2638ccd83dfe7127444121907c11769b25 (commit) via 674aaf80bda5254cd7c16377f93fda577a06bedc (commit) via 9639b2f7e7fadee1c160b915183dc2aa30a0408e (commit) from 08f31611996f8c7878f6267bd3698056cb016f61 (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=65aadbed2e3361519eec9a32a3250976c0ae04ed commit 65aadbed2e3361519eec9a32a3250976c0ae04ed Merge: 08f3161 5b5bdb2 Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Sat Dec 17 09:01:07 2016 -0500 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Sat Dec 17 09:01:07 2016 -0500 Merge topic 'gcc-34-features' into next 5b5bdb26 record features of gcc 3.4..4.3 674aaf80 use cxx_long_long_type instead of cxx_auto_type to check C++ compile features 9639b2f7 CMake Nightly Date Stamp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5b5bdb2638ccd83dfe7127444121907c11769b25 commit 5b5bdb2638ccd83dfe7127444121907c11769b25 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: Sat Dec 17 15:00:54 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=674aaf80bda5254cd7c16377f93fda577a06bedc commit 674aaf80bda5254cd7c16377f93fda577a06bedc 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: Sat Dec 17 15:00:54 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..7da526a 100644 --- a/Tests/CMakeCommands/target_compile_features/CMakeLists.txt +++ b/Tests/CMakeCommands/target_compile_features/CMakeLists.txt @@ -32,14 +32,14 @@ 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) - target_compile_features(lib_auto_type - PUBLIC cxx_auto_type + add_library(lib_long_long_type lib_long_long_type.cpp) + target_compile_features(lib_long_long_type + PUBLIC cxx_long_long_type ) add_executable(lib_user lib_user.cpp) - target_link_libraries(lib_user lib_auto_type) + target_link_libraries(lib_user lib_long_long_type) endif() diff --git a/Tests/CMakeCommands/target_compile_features/lib_auto_type.cpp b/Tests/CMakeCommands/target_compile_features/lib_auto_type.cpp deleted file mode 100644 index 71b2215..0000000 --- a/Tests/CMakeCommands/target_compile_features/lib_auto_type.cpp +++ /dev/null @@ -1,6 +0,0 @@ - -int getAutoTypeImpl() -{ - auto i = 0; - return i; -} diff --git a/Tests/CMakeCommands/target_compile_features/lib_auto_type.h b/Tests/CMakeCommands/target_compile_features/lib_auto_type.h deleted file mode 100644 index c825b10..0000000 --- a/Tests/CMakeCommands/target_compile_features/lib_auto_type.h +++ /dev/null @@ -1,8 +0,0 @@ - -int getAutoTypeImpl(); - -int getAutoType() -{ - auto i = getAutoTypeImpl(); - return i; -} diff --git a/Tests/CMakeCommands/target_compile_features/lib_long_long_type.cpp b/Tests/CMakeCommands/target_compile_features/lib_long_long_type.cpp new file mode 100644 index 0000000..4d3a896 --- /dev/null +++ b/Tests/CMakeCommands/target_compile_features/lib_long_long_type.cpp @@ -0,0 +1,11 @@ + +int getLLTypeImpl(long long &l) +{ + int i = 64; + while(l) { + if(l & 1) + i--; + l >>= 1; + } + return i; +} diff --git a/Tests/CMakeCommands/target_compile_features/lib_long_long_type.h b/Tests/CMakeCommands/target_compile_features/lib_long_long_type.h new file mode 100644 index 0000000..8111382 --- /dev/null +++ b/Tests/CMakeCommands/target_compile_features/lib_long_long_type.h @@ -0,0 +1,8 @@ + +int getLLTypeImpl(long long &); + +int getLLType(int i) +{ + long long l = i; + return getLLTypeImpl(l); +} diff --git a/Tests/CMakeCommands/target_compile_features/lib_user.cpp b/Tests/CMakeCommands/target_compile_features/lib_user.cpp index 541e528..8e6f860 100644 --- a/Tests/CMakeCommands/target_compile_features/lib_user.cpp +++ b/Tests/CMakeCommands/target_compile_features/lib_user.cpp @@ -1,7 +1,7 @@ -#include "lib_auto_type.h" +#include "lib_long_long_type.h" int main(int argc, char** argv) { - return getAutoType(); + return getLLType(42); } 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..7c5aa88 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 @@ -291,7 +291,7 @@ if (CMAKE_CXX_COMPILE_FEATURES) add_library(iface INTERFACE) set_property(TARGET iface - PROPERTY INTERFACE_COMPILE_FEATURES "cxx_auto_type" + PROPERTY INTERFACE_COMPILE_FEATURES "cxx_long_long_type" ) add_executable(IfaceCompileFeatures main.cpp) target_link_libraries(IfaceCompileFeatures iface) 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: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits