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 50be50f8fd017a4f014aded68d81e1955382db63 (commit) via 37ed860ad1e71f347513a38432640f7dda5c07ee (commit) via 94a8ee6fd0ba487437579bb224500b9f46c2819c (commit) via 940bf6a4a427c8edfd975bf078a3ea331847f72a (commit) via f26ca5a1953e7f260bc23d30c5d35cc071a6f6ab (commit) from 9a4338d7f59750c2cbd61ed0a252224f102f0384 (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=50be50f8fd017a4f014aded68d81e1955382db63 commit 50be50f8fd017a4f014aded68d81e1955382db63 Merge: 9a4338d 37ed860 Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Thu Feb 2 15:56:13 2017 -0500 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Thu Feb 2 15:56:13 2017 -0500 Merge topic 'gcc-features' into next 37ed860a GNU C++: record that -fvisibility-inlines-hidden is available since 4.0 94a8ee6f GNU C: record that C99 is available since at least 3.4 940bf6a4 Tests/Module/WCDH: only use -Werror=undef compiler flag if actually supported f26ca5a1 Tests/Module/WCDH: write multi_file_compiler_detection.h before using it https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=37ed860ad1e71f347513a38432640f7dda5c07ee commit 37ed860ad1e71f347513a38432640f7dda5c07ee Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Fri Jan 27 16:52:42 2017 +0100 Commit: Rolf Eike Beer <e...@sf-mail.de> CommitDate: Thu Feb 2 18:28:56 2017 +0100 GNU C++: record that -fvisibility-inlines-hidden is available since 4.0 See https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Option-Summary.html diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake index b04ea11..c007c98 100644 --- a/Modules/Compiler/GNU-CXX.cmake +++ b/Modules/Compiler/GNU-CXX.cmake @@ -6,7 +6,7 @@ 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 4.0) set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden") endif() endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=94a8ee6fd0ba487437579bb224500b9f46c2819c commit 94a8ee6fd0ba487437579bb224500b9f46c2819c Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Fri Jan 27 16:49:45 2017 +0100 Commit: Rolf Eike Beer <e...@sf-mail.de> CommitDate: Thu Feb 2 18:28:56 2017 +0100 GNU C: record that C99 is available since at least 3.4 diff --git a/Help/manual/cmake-compile-features.7.rst b/Help/manual/cmake-compile-features.7.rst index 4f48ad9..448fe9a 100644 --- a/Help/manual/cmake-compile-features.7.rst +++ b/Help/manual/cmake-compile-features.7.rst @@ -338,6 +338,14 @@ versions specified for each: * ``SunPro``: Oracle SolarisStudio version 12.4. * ``Intel``: Intel compiler versions 12.1 through 17.0. +CMake is currently aware of the :prop_tgt:`C standards <C_STANDARD>` +and :prop_gbl:`compile features <CMAKE_C_KNOWN_FEATURES>` available from +the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the +versions specified for each: + +* all compilers and versions listed above for C++ +* ``GNU``: GNU compiler versions 3.4 through 5.0. + CMake is currently aware of the :prop_tgt:`CUDA standards <CUDA_STANDARD>` from the following :variable:`compiler ids <CMAKE_<LANG>_COMPILER_ID>` as of the versions specified for each: diff --git a/Help/release/dev/gcc-features.rst b/Help/release/dev/gcc-features.rst new file mode 100644 index 0000000..c6959ab --- /dev/null +++ b/Help/release/dev/gcc-features.rst @@ -0,0 +1,5 @@ +gcc-features +------------ + +* The :manual:`Compile Features <cmake-compile-features(7)>` functionality + is now aware of the availability of C99 in gcc since version 3.4. 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() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=940bf6a4a427c8edfd975bf078a3ea331847f72a commit 940bf6a4a427c8edfd975bf078a3ea331847f72a Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Thu Feb 2 18:28:24 2017 +0100 Commit: Rolf Eike Beer <e...@sf-mail.de> CommitDate: Thu Feb 2 18:28:56 2017 +0100 Tests/Module/WCDH: only use -Werror=undef compiler flag if actually supported diff --git a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt index a8406dd..2657aeb 100644 --- a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt +++ b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt @@ -68,7 +68,11 @@ if (CMAKE_C_COMPILE_FEATURES) add_executable(C_undefined c_undefined.c) set_property(TARGET C_undefined PROPERTY C_STANDARD 90) - target_compile_options(C_undefined PRIVATE -Werror=undef) + include(CheckCCompilerFlag) + check_c_compiler_flag(-Werror=undef use_error_undef) + if (use_error_undef) + target_compile_options(C_undefined PRIVATE -Werror=undef) + endif() add_executable(WriteCompilerDetectionHeader_C main.c) set_property(TARGET WriteCompilerDetectionHeader_C PROPERTY C_STANDARD 90) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f26ca5a1953e7f260bc23d30c5d35cc071a6f6ab commit f26ca5a1953e7f260bc23d30c5d35cc071a6f6ab Author: Rolf Eike Beer <e...@sf-mail.de> AuthorDate: Wed Feb 1 20:48:25 2017 +0100 Commit: Rolf Eike Beer <e...@sf-mail.de> CommitDate: Thu Feb 2 18:25:28 2017 +0100 Tests/Module/WCDH: write multi_file_compiler_detection.h before using it This was broken in commit 98e6d1e5e426c491e04faa746c11746002e6a69d (Tests/Module/WCDH: make it work with only C features defined) when all C tests were made accessible even if no C++ features are available, but the header was only created if C++ features are available. Fix it by creating the header unconditionally before any checks on the available features. diff --git a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt index 7957ab8..a8406dd 100644 --- a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt +++ b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt @@ -20,6 +20,17 @@ write_compiler_detection_header( ${cxx_known_features} ${c_known_features} ) +write_compiler_detection_header( + FILE "${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/multi_file_compiler_detection.h" + PREFIX MULTI + OUTPUT_FILES_VAR multi_files + OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/compiler_support" + COMPILERS GNU Clang AppleClang MSVC SunPro Intel + VERSION 3.1 + FEATURES + ${cxx_known_features} ${c_known_features} +) + macro(set_defines target true_defs false_defs) set(defines) foreach(def ${true_defs}) @@ -116,17 +127,6 @@ add_executable(WriteCompilerDetectionHeader main.cpp) set_property(TARGET WriteCompilerDetectionHeader PROPERTY CXX_STANDARD 98) set_defines(WriteCompilerDetectionHeader "${true_defs}" "${false_defs}") -write_compiler_detection_header( - FILE "${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/multi_file_compiler_detection.h" - PREFIX MULTI - OUTPUT_FILES_VAR multi_files - OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files/compiler_support" - COMPILERS GNU Clang AppleClang MSVC SunPro Intel - VERSION 3.1 - FEATURES - ${cxx_known_features} ${c_known_features} -) - add_executable(multi_files multi_files.cpp) set_property(TARGET multi_files PROPERTY CXX_STANDARD 98) target_include_directories(multi_files PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files) ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-compile-features.7.rst | 8 ++++++ Help/release/dev/gcc-features.rst | 5 ++++ Modules/Compiler/GNU-C-FeatureTests.cmake | 10 +++---- Modules/Compiler/GNU-C.cmake | 9 +++---- Modules/Compiler/GNU-CXX.cmake | 2 +- .../WriteCompilerDetectionHeader/CMakeLists.txt | 28 +++++++++++--------- 6 files changed, 39 insertions(+), 23 deletions(-) create mode 100644 Help/release/dev/gcc-features.rst hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits