[Cmake-commits] CMake branch, master, updated. v3.8.1-1032-g1fe2dc5
Kitware Robot
kwrobot at kitware.com
Wed May 3 11:05:09 EDT 2017
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.king at kitware.com>
AuthorDate: Wed May 3 15:04:08 2017 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Wed May 3 11:04:17 2017 -0400
Merge topic 'ipo-xcode'
7e75568b Xcode: Support IPO (LTO)
Acked-by: Kitware Robot <kwrobot at 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.king at kitware.com>
AuthorDate: Wed May 3 15:00:59 2017 +0000
Commit: Kitware Robot <kwrobot at 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 <kwrobot at 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.king at kitware.com>
AuthorDate: Wed May 3 15:00:43 2017 +0000
Commit: Kitware Robot <kwrobot at 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 <kwrobot at kitware.com>
Merge-request: !788
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7e75568b001e29a7428d7489c57cebd909359571
commit 7e75568b001e29a7428d7489c57cebd909359571
Author: Ruslan Baratov <ruslan_baratov at yahoo.com>
AuthorDate: Thu Apr 27 21:18:26 2017 +0800
Commit: Ruslan Baratov <ruslan_baratov at 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.atkins at kitware.com>
AuthorDate: Tue May 2 10:08:56 2017 -0400
Commit: Chuck Atkins <chuck.atkins at 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.atkins at kitware.com>
AuthorDate: Mon May 1 13:21:31 2017 -0400
Commit: Chuck Atkins <chuck.atkins at 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.atkins at kitware.com>
AuthorDate: Mon May 1 13:11:26 2017 -0400
Commit: Chuck Atkins <chuck.atkins at 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.atkins at kitware.com>
AuthorDate: Mon May 1 13:02:19 2017 -0400
Commit: Chuck Atkins <chuck.atkins at 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.atkins at kitware.com>
AuthorDate: Mon May 1 13:02:02 2017 -0400
Commit: Chuck Atkins <chuck.atkins at 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.atkins at kitware.com>
AuthorDate: Mon May 1 12:51:31 2017 -0400
Commit: Chuck Atkins <chuck.atkins at 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.atkins at kitware.com>
AuthorDate: Mon May 1 09:29:03 2017 -0400
Commit: Chuck Atkins <chuck.atkins at 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
More information about the Cmake-commits
mailing list