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, master has been updated via 1fe2dc5ef2a1f262b125a2ba6a85f624ce150dd2 (commit) via bf3c08d648c398026eef363bb43d3f8bfaf2a286 (commit) via f1e91c694b1581b4ae923b3bd4a243372cb29023 (commit) via 7e75568b001e29a7428d7489c57cebd909359571 (commit) via 0225417f60ebaa9de96dd9a9846c2ef7105a39f1 (commit) via d908987634ad1dd1295ac585ffe7c810bda69415 (commit) via 174c02e149ab4bcc9bc98d4e4042eb0b24e2f2ee (commit) via 08fa2ba8d0682e0c9c307b572afbcee05cc93477 (commit) via 0198502ff4fa3dec9cbd3249f6f458f53a8087f3 (commit) via d1aa2b3f607b35dc5dbf613b2334b6d243ec2bda (commit) via 87b9d6d93f2e5e6076992cae7395647359de306d (commit) from 96820279541017402c1fe0852444aac68179ddb7 (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=1fe2dc5ef2a1f262b125a2ba6a85f624ce150dd2 commit 1fe2dc5ef2a1f262b125a2ba6a85f624ce150dd2 Merge: bf3c08d 7e75568 Author: Brad King <brad.k...@kitware.com> AuthorDate: Wed May 3 15:04:08 2017 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Wed May 3 11:04:17 2017 -0400 Merge topic 'ipo-xcode' 7e75568b Xcode: Support IPO (LTO) Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !785 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bf3c08d648c398026eef363bb43d3f8bfaf2a286 commit bf3c08d648c398026eef363bb43d3f8bfaf2a286 Merge: f1e91c6 d908987 Author: Brad King <brad.k...@kitware.com> AuthorDate: Wed May 3 15:00:59 2017 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Wed May 3 11:01:12 2017 -0400 Merge topic 'port-language-default-to-common-macro' d9089876 AppleClang: Use common compiler macros for language standard default 174c02e1 SunPro: Use common compiler macros for language standard default 08fa2ba8 Clang: Use common compiler macros for language standard default 0198502f Intel: Use common compiler macros for language standard default d1aa2b3f GNU: Use common compiler macros for language standard default 87b9d6d9 XL: Use common compiler macros for language standard default Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !787 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f1e91c694b1581b4ae923b3bd4a243372cb29023 commit f1e91c694b1581b4ae923b3bd4a243372cb29023 Merge: 9682027 0225417 Author: Brad King <brad.k...@kitware.com> AuthorDate: Wed May 3 15:00:43 2017 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Wed May 3 11:00:51 2017 -0400 Merge topic 'fix-typo-in-pgi-files' 0225417f PGI: Fix typo in logic for C standard flags Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !788 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7e75568b001e29a7428d7489c57cebd909359571 commit 7e75568b001e29a7428d7489c57cebd909359571 Author: Ruslan Baratov <ruslan_bara...@yahoo.com> AuthorDate: Thu Apr 27 21:18:26 2017 +0800 Commit: Ruslan Baratov <ruslan_bara...@yahoo.com> CommitDate: Tue May 2 18:33:25 2017 +0300 Xcode: Support IPO (LTO) diff --git a/Modules/CheckIPOSupported.cmake b/Modules/CheckIPOSupported.cmake index 712a95e..6bbde13 100644 --- a/Modules/CheckIPOSupported.cmake +++ b/Modules/CheckIPOSupported.cmake @@ -217,7 +217,7 @@ function(check_ipo_supported) return() endif() - if(CMAKE_GENERATOR MATCHES "^(Visual Studio |Xcode$)") + if(CMAKE_GENERATOR MATCHES "^Visual Studio ") _ipo_not_supported("CMake doesn't support IPO for current generator") return() endif() diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index d99e3bb..95c1236 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1683,8 +1683,11 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt, return; } - // Check IPO related warning/error. - gtgt->IsIPOEnabled(configName); + if (gtgt->IsIPOEnabled(configName)) { + const char* ltoValue = + this->CurrentMakefile->IsOn("_CMAKE_LTO_THIN") ? "YES_THIN" : "YES"; + buildSettings->AddAttribute("LLVM_LTO", this->CreateString(ltoValue)); + } // Add define flags this->CurrentLocalGenerator->AppendFlags( diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index ee06074..a5d169f 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h @@ -90,6 +90,8 @@ public: bool HasKnownObjectFileLocation(std::string* reason) const CM_OVERRIDE; + bool IsIPOSupported() const CM_OVERRIDE { return true; } + bool UseEffectivePlatformName(cmMakefile* mf) const CM_OVERRIDE; bool ShouldStripResourcePath(cmMakefile*) const CM_OVERRIDE; diff --git a/Tests/RunCMake/CMP0069/RunCMakeTest.cmake b/Tests/RunCMake/CMP0069/RunCMakeTest.cmake index 61ba458..f44f840 100644 --- a/Tests/RunCMake/CMP0069/RunCMakeTest.cmake +++ b/Tests/RunCMake/CMP0069/RunCMakeTest.cmake @@ -5,7 +5,6 @@ run_cmake(CMP0069-NEW-cmake) run_cmake(CMP0069-NEW-compiler) run_cmake(CMP0069-WARN) -string(COMPARE EQUAL "${RunCMake_GENERATOR}" "Xcode" is_xcode) -if(is_xcode OR RunCMake_GENERATOR MATCHES "^Visual Studio ") +if(RunCMake_GENERATOR MATCHES "^Visual Studio ") run_cmake(CMP0069-NEW-generator) endif() diff --git a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake index 588a75d..e145569 100644 --- a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake +++ b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake @@ -8,6 +8,6 @@ run_cmake(not-supported-by-compiler) run_cmake(save-to-result) run_cmake(cmp0069-is-old) -if(RunCMake_GENERATOR MATCHES "^(Visual Studio |Xcode$)") +if(RunCMake_GENERATOR MATCHES "^Visual Studio ") run_cmake(not-supported-by-generator) endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0225417f60ebaa9de96dd9a9846c2ef7105a39f1 commit 0225417f60ebaa9de96dd9a9846c2ef7105a39f1 Author: Chuck Atkins <chuck.atk...@kitware.com> AuthorDate: Tue May 2 10:08:56 2017 -0400 Commit: Chuck Atkins <chuck.atk...@kitware.com> CommitDate: Tue May 2 10:08:56 2017 -0400 PGI: Fix typo in logic for C standard flags diff --git a/Modules/Compiler/PGI-C.cmake b/Modules/Compiler/PGI-C.cmake index a24e554..3b3848a 100644 --- a/Modules/Compiler/PGI-C.cmake +++ b/Modules/Compiler/PGI-C.cmake @@ -8,7 +8,7 @@ if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12.10) set(CMAKE_C90_EXTENSION_COMPILE_OPTION -c89) set(CMAKE_C99_STANDARD_COMPILE_OPTION -c99) set(CMAKE_C99_EXTENSION_COMPILE_OPTION -c99) - if (CMAKE_C_COMPILER_VERSION VERSION_CREATER_EQUAL 15.3) + if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 15.3) set(CMAKE_C11_STANDARD_COMPILE_OPTION -c11) set(CMAKE_C11_EXTENSION_COMPILE_OPTION -c11) endif () https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d908987634ad1dd1295ac585ffe7c810bda69415 commit d908987634ad1dd1295ac585ffe7c810bda69415 Author: Chuck Atkins <chuck.atk...@kitware.com> AuthorDate: Mon May 1 13:21:31 2017 -0400 Commit: Chuck Atkins <chuck.atk...@kitware.com> CommitDate: Tue May 2 09:49:23 2017 -0400 AppleClang: Use common compiler macros for language standard default diff --git a/Modules/Compiler/AppleClang-C.cmake b/Modules/Compiler/AppleClang-C.cmake index f874e74..c18f541 100644 --- a/Modules/Compiler/AppleClang-C.cmake +++ b/Modules/Compiler/AppleClang-C.cmake @@ -12,17 +12,7 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0) set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11") endif() -if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0) - 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}") - endif() - set(CMAKE_C_STANDARD_DEFAULT ${CMAKE_C_STANDARD_COMPUTED_DEFAULT}) - elseif(NOT DEFINED CMAKE_C_STANDARD_DEFAULT) - # Compiler id was forced so just guess the default standard level. - set(CMAKE_C_STANDARD_DEFAULT 99) - endif() -endif() +__compiler_check_default_language_standard(C 4.0 99) macro(cmake_record_c_compile_features) set(_result 0) diff --git a/Modules/Compiler/AppleClang-CXX.cmake b/Modules/Compiler/AppleClang-CXX.cmake index ee900ae..904d965 100644 --- a/Modules/Compiler/AppleClang-CXX.cmake +++ b/Modules/Compiler/AppleClang-CXX.cmake @@ -27,18 +27,7 @@ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.1) set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z") endif() -if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0) - 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}") - endif() - set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) - elseif(NOT DEFINED CMAKE_CXX_STANDARD_DEFAULT) - # Compiler id was forced so just guess the default standard level. - set(CMAKE_CXX_STANDARD_DEFAULT 98) - endif() -endif() - +__compiler_check_default_language_standard(CXX 4.0 98) macro(cmake_record_cxx_compile_features) set(_result 0) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=174c02e149ab4bcc9bc98d4e4042eb0b24e2f2ee commit 174c02e149ab4bcc9bc98d4e4042eb0b24e2f2ee Author: Chuck Atkins <chuck.atk...@kitware.com> AuthorDate: Mon May 1 13:11:26 2017 -0400 Commit: Chuck Atkins <chuck.atk...@kitware.com> CommitDate: Tue May 2 09:49:23 2017 -0400 SunPro: Use common compiler macros for language standard default diff --git a/Modules/Compiler/SunPro-CXX.cmake b/Modules/Compiler/SunPro-CXX.cmake index b4183db..5db7987 100644 --- a/Modules/Compiler/SunPro-CXX.cmake +++ b/Modules/Compiler/SunPro-CXX.cmake @@ -1,3 +1,8 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +include(Compiler/SunPro) + set(CMAKE_CXX_VERBOSE_FLAG "-v") set(CMAKE_CXX_COMPILE_OPTIONS_PIC -KPIC) @@ -39,17 +44,7 @@ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13) set(CMAKE_CXX_LINK_WITH_STANDARD_COMPILE_OPTION 1) endif() -if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13) - 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}") - endif() - set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) - elseif(NOT DEFINED CMAKE_CXX_STANDARD_DEFAULT) - # Compiler id was forced so just guess the default standard level. - set(CMAKE_CXX_STANDARD_DEFAULT 98) - endif() -endif() +__compiler_check_default_language_standard(CXX 5.13 98) macro(cmake_record_cxx_compile_features) set(_result 0) diff --git a/Modules/Compiler/SunPro.cmake b/Modules/Compiler/SunPro.cmake new file mode 100644 index 0000000..52da39a --- /dev/null +++ b/Modules/Compiler/SunPro.cmake @@ -0,0 +1,10 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +# This module is shared by multiple languages; use include blocker. +if(__COMPILER_SUNPRO) + return() +endif() +set(__COMPILER_SUNPRO 1) + +include(Compiler/CMakeCommonCompilerMacros) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=08fa2ba8d0682e0c9c307b572afbcee05cc93477 commit 08fa2ba8d0682e0c9c307b572afbcee05cc93477 Author: Chuck Atkins <chuck.atk...@kitware.com> AuthorDate: Mon May 1 13:02:19 2017 -0400 Commit: Chuck Atkins <chuck.atk...@kitware.com> CommitDate: Tue May 2 09:49:23 2017 -0400 Clang: Use common compiler macros for language standard default diff --git a/Modules/Compiler/Clang-C.cmake b/Modules/Compiler/Clang-C.cmake index bcd9218..b94087f 100644 --- a/Modules/Compiler/Clang-C.cmake +++ b/Modules/Compiler/Clang-C.cmake @@ -17,21 +17,7 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4) set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11") endif() -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}") - endif() - set(CMAKE_C_STANDARD_DEFAULT ${CMAKE_C_STANDARD_COMPUTED_DEFAULT}) - elseif(NOT DEFINED CMAKE_C_STANDARD_DEFAULT) - # Compiler id was forced so just guess the default standard level. - if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6) - set(CMAKE_C_STANDARD_DEFAULT 11) - else() - set(CMAKE_C_STANDARD_DEFAULT 99) - endif() - endif() -endif() +__compiler_check_default_language_standard(C 3.4 99 3.6 11) macro(cmake_record_c_compile_features) set(_result 0) diff --git a/Modules/Compiler/Clang-CXX.cmake b/Modules/Compiler/Clang-CXX.cmake index 8ed3695..5904efa 100644 --- a/Modules/Compiler/Clang-CXX.cmake +++ b/Modules/Compiler/Clang-CXX.cmake @@ -36,17 +36,7 @@ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5) set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z") endif() -if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1) - 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}") - endif() - set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) - elseif(NOT DEFINED CMAKE_CXX_STANDARD_DEFAULT) - # Compiler id was forced so just guess the default standard level. - set(CMAKE_CXX_STANDARD_DEFAULT 98) - endif() -endif() +__compiler_check_default_language_standard(CXX 3.1 98) macro(cmake_record_cxx_compile_features) set(_result 0) diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake index 8c2f87d..ef7ff2e 100644 --- a/Modules/Compiler/Clang.cmake +++ b/Modules/Compiler/Clang.cmake @@ -8,6 +8,8 @@ if(__COMPILER_CLANG) endif() set(__COMPILER_CLANG 1) +include(Compiler/CMakeCommonCompilerMacros) + if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC" OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") macro(__compiler_clang lang) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0198502ff4fa3dec9cbd3249f6f458f53a8087f3 commit 0198502ff4fa3dec9cbd3249f6f458f53a8087f3 Author: Chuck Atkins <chuck.atk...@kitware.com> AuthorDate: Mon May 1 13:02:02 2017 -0400 Commit: Chuck Atkins <chuck.atk...@kitware.com> CommitDate: Tue May 2 09:49:23 2017 -0400 Intel: Use common compiler macros for language standard default diff --git a/Modules/Compiler/Intel-C.cmake b/Modules/Compiler/Intel-C.cmake index 9c67fbd..d583dba 100644 --- a/Modules/Compiler/Intel-C.cmake +++ b/Modules/Compiler/Intel-C.cmake @@ -30,25 +30,11 @@ if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0) set(CMAKE_C99_EXTENSION_COMPILE_OPTION "${_std}=${_ext}99") endif() -if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.1) - 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}") - endif() - set(CMAKE_C_STANDARD_DEFAULT ${CMAKE_C_STANDARD_COMPUTED_DEFAULT}) - elseif(NOT DEFINED CMAKE_C_STANDARD_DEFAULT) - # Compiler id was forced so just guess the default standard level. - if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0) - set(CMAKE_C_STANDARD_DEFAULT 11) - else() - set(CMAKE_C_STANDARD_DEFAULT 90) - endif() - endif() -endif() - unset(_std) unset(_ext) +__compiler_check_default_language_standard(C 12.1 90 15.0.0 11) + macro(cmake_record_c_compile_features) set(_result 0) if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.1) diff --git a/Modules/Compiler/Intel-CXX.cmake b/Modules/Compiler/Intel-CXX.cmake index 9c39236..4aef30a 100644 --- a/Modules/Compiler/Intel-CXX.cmake +++ b/Modules/Compiler/Intel-CXX.cmake @@ -47,22 +47,11 @@ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) endif() endif() -if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) - 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}") - else() - set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) - endif() - elseif (NOT CMAKE_CXX_STANDARD_COMPUTED_DEFAULT) - # Compiler id was forced so just guess the default standard level. - set(CMAKE_CXX_STANDARD_DEFAULT 98) - endif() -endif() - unset(_std) unset(_ext) +__compiler_check_default_language_standard(CXX 12.1 98) + macro(cmake_record_cxx_compile_features) set(_result 0) if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) diff --git a/Modules/Compiler/Intel.cmake b/Modules/Compiler/Intel.cmake index 06d01f1..635ac4d 100644 --- a/Modules/Compiler/Intel.cmake +++ b/Modules/Compiler/Intel.cmake @@ -8,6 +8,8 @@ if(__COMPILER_INTEL) endif() set(__COMPILER_INTEL 1) +include(Compiler/CMakeCommonCompilerMacros) + if(CMAKE_HOST_WIN32) # MSVC-like macro(__compiler_intel lang) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d1aa2b3f607b35dc5dbf613b2334b6d243ec2bda commit d1aa2b3f607b35dc5dbf613b2334b6d243ec2bda Author: Chuck Atkins <chuck.atk...@kitware.com> AuthorDate: Mon May 1 12:51:31 2017 -0400 Commit: Chuck Atkins <chuck.atk...@kitware.com> CommitDate: Tue May 2 09:49:23 2017 -0400 GNU: Use common compiler macros for language standard default diff --git a/Modules/Compiler/GNU-C.cmake b/Modules/Compiler/GNU-C.cmake index 3f02618..8090fa6 100644 --- a/Modules/Compiler/GNU-C.cmake +++ b/Modules/Compiler/GNU-C.cmake @@ -22,21 +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 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}") - endif() - set(CMAKE_C_STANDARD_DEFAULT ${CMAKE_C_STANDARD_COMPUTED_DEFAULT}) - elseif(NOT DEFINED CMAKE_C_STANDARD_DEFAULT) - # Compiler id was forced so just guess the default standard level. - if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0) - set(CMAKE_C_STANDARD_DEFAULT 11) - else() - set(CMAKE_C_STANDARD_DEFAULT 90) - endif() - endif() -endif() +__compiler_check_default_language_standard(C 3.4 90 5.0 11) macro(cmake_record_c_compile_features) set(_result 0) diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake index 2499d2f..b221c4a 100644 --- a/Modules/Compiler/GNU-CXX.cmake +++ b/Modules/Compiler/GNU-CXX.cmake @@ -38,17 +38,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_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}") - endif() - set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) - elseif(NOT DEFINED CMAKE_CXX_STANDARD_DEFAULT) - # Compiler id was forced so just guess the default standard level. - set(CMAKE_CXX_STANDARD_DEFAULT 98) - endif() -endif() +__compiler_check_default_language_standard(CXX 4.4 98 6.0 14) macro(cmake_record_cxx_compile_features) set(_result 0) diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake index 0a510f5..e2739a8 100644 --- a/Modules/Compiler/GNU.cmake +++ b/Modules/Compiler/GNU.cmake @@ -8,6 +8,8 @@ if(__COMPILER_GNU) endif() set(__COMPILER_GNU 1) +include(Compiler/CMakeCommonCompilerMacros) + macro(__compiler_gnu lang) # Feature flags. set(CMAKE_${lang}_VERBOSE_FLAG "-v") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=87b9d6d93f2e5e6076992cae7395647359de306d commit 87b9d6d93f2e5e6076992cae7395647359de306d Author: Chuck Atkins <chuck.atk...@kitware.com> AuthorDate: Mon May 1 09:29:03 2017 -0400 Commit: Chuck Atkins <chuck.atk...@kitware.com> CommitDate: Tue May 2 09:49:23 2017 -0400 XL: Use common compiler macros for language standard default diff --git a/Modules/Compiler/XL-C.cmake b/Modules/Compiler/XL-C.cmake index ac84da2..5dc8bc1 100644 --- a/Modules/Compiler/XL-C.cmake +++ b/Modules/Compiler/XL-C.cmake @@ -12,21 +12,21 @@ string(APPEND CMAKE_C_FLAGS_INIT " -qthreaded") # little-endian, all versions on Linux ppc64 big-endian, all versions on AIX # and BGQ, etc) are derived from the UNIX compiler and only accept the # -qlanglvl option. -if (CMAKE_SYSTEM MATCHES "Linux.*ppc64le" AND - CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.1) - set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c89") - set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu89") - set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99") - set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99") - if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.2) - set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11") - set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11") +if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1) + if (CMAKE_SYSTEM MATCHES "Linux.*ppc64le" AND + CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.1) + set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c89") + set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu89") + set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99") + set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99") + if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.2) + set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11") + set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11") + else () + set(CMAKE_C11_STANDARD_COMPILE_OPTION "-qlanglvl=extc1x") + set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-qlanglvl=extc1x") + endif () else () - set(CMAKE_C11_STANDARD_COMPILE_OPTION "-qlanglvl=extc1x") - set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-qlanglvl=extc1x") - endif () -else () - if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1) set(CMAKE_C90_STANDARD_COMPILE_OPTION "-qlanglvl=stdc89") set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-qlanglvl=extc89") set(CMAKE_C99_STANDARD_COMPILE_OPTION "-qlanglvl=stdc99") @@ -38,15 +38,4 @@ else () endif () endif() -if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1) - 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}") - else () - set(CMAKE_C_STANDARD_DEFAULT ${CMAKE_C_STANDARD_COMPUTED_DEFAULT}) - endif () - elseif (NOT CMAKE_C_STANDARD_COMPUTED_DEFAULT) - # Compiler id was forced so just guess the default standard level. - set(CMAKE_C_STANDARD_DEFAULT 90) - endif () -endif () +__compiler_check_default_language_standard(C 10.1 90) diff --git a/Modules/Compiler/XL-CXX.cmake b/Modules/Compiler/XL-CXX.cmake index 98ccb29..b87e923 100644 --- a/Modules/Compiler/XL-CXX.cmake +++ b/Modules/Compiler/XL-CXX.cmake @@ -12,32 +12,30 @@ string(APPEND CMAKE_CXX_FLAGS_INIT " -qthreaded") # little-endian, all versions on Linux ppc64 big-endian, all versions on AIX # and BGQ, etc) are derived from the UNIX compiler and only accept the # -qlanglvl option. -if (CMAKE_SYSTEM MATCHES "Linux.*ppc64") - if (CMAKE_SYSTEM MATCHES "Linux.*ppc64le" AND - CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.1) - set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98") - set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98") - if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.2) - set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11") - set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11") - set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y") - set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-qlanglvl=extended1y") +if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1) + if (CMAKE_SYSTEM MATCHES "Linux.*ppc64") + if (CMAKE_SYSTEM MATCHES "Linux.*ppc64le" AND + CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.1) + set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98") + set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98") + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1.2) + set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11") + set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11") + set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y") + set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-qlanglvl=extended1y") + else () + set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x") + set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x") + endif () else () - set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x") - set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x") - endif () - else () - # The non-clang based Linux ppc64 compiler, both big-endian and - # little-endian lacks, the non-extension language level flags - if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1) + # The non-clang based Linux ppc64 compiler, both big-endian and + # little-endian lacks, the non-extension language level flags set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-qlanglvl=extended") set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-qlanglvl=extended") set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x") set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x") endif () - endif () -else () - if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1) + else () set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-qlanglvl=strict98") set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-qlanglvl=extended") set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x") @@ -45,18 +43,7 @@ else () endif () endif () +__compiler_check_default_language_standard(CXX 10.1 98) + set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> -+ <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>") - -if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1) - 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}") - else () - set(CMAKE_CXX_STANDARD_DEFAULT ${CMAKE_CXX_STANDARD_COMPUTED_DEFAULT}) - endif () - elseif (NOT CMAKE_CXX_STANDARD_COMPUTED_DEFAULT) - # Compiler id was forced so just guess the default standard level. - set(CMAKE_CXX_STANDARD_DEFAULT 98) - endif () -endif () diff --git a/Modules/Compiler/XL.cmake b/Modules/Compiler/XL.cmake index 55f71bd..4783785 100644 --- a/Modules/Compiler/XL.cmake +++ b/Modules/Compiler/XL.cmake @@ -8,6 +8,8 @@ if(__COMPILER_XL) endif() set(__COMPILER_XL 1) +include(Compiler/CMakeCommonCompilerMacros) + # Find the CreateExportList program that comes with this toolchain. find_program(CMAKE_XL_CreateExportList NAMES CreateExportList ----------------------------------------------------------------------- Summary of changes: Modules/CheckIPOSupported.cmake | 2 +- Modules/Compiler/AppleClang-C.cmake | 12 +---- Modules/Compiler/AppleClang-CXX.cmake | 13 +---- Modules/Compiler/Clang-C.cmake | 16 +----- Modules/Compiler/Clang-CXX.cmake | 12 +---- Modules/Compiler/Clang.cmake | 2 + Modules/Compiler/GNU-C.cmake | 16 +----- Modules/Compiler/GNU-CXX.cmake | 12 +---- Modules/Compiler/GNU.cmake | 2 + Modules/Compiler/Intel-C.cmake | 18 +------ Modules/Compiler/Intel-CXX.cmake | 15 +----- Modules/Compiler/Intel.cmake | 2 + Modules/Compiler/PGI-C.cmake | 2 +- Modules/Compiler/SunPro-CXX.cmake | 17 +++---- Modules/Compiler/{Cray.cmake => SunPro.cmake} | 4 +- Modules/Compiler/XL-C.cmake | 41 ++++++--------- Modules/Compiler/XL-CXX.cmake | 53 ++++++++------------ Modules/Compiler/XL.cmake | 2 + Source/cmGlobalXCodeGenerator.cxx | 7 ++- Source/cmGlobalXCodeGenerator.h | 2 + Tests/RunCMake/CMP0069/RunCMakeTest.cmake | 3 +- .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 2 +- 22 files changed, 72 insertions(+), 183 deletions(-) copy Modules/Compiler/{Cray.cmake => SunPro.cmake} (85%) hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits