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  e576d82760c1e30a6104d82cbe58e5dc7c874dea (commit)
       via  1763c31c3b964343b88f8f26dc2941dd8c0e1fbe (commit)
       via  aa53ee57bb50faa3aa64e86cb58bbe2df6688335 (commit)
       via  ab65862417adc80dfb18170a6bd70889a24fe045 (commit)
      from  e35fb682062a879154e68184ea98fcadb386cce4 (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e576d82760c1e30a6104d82cbe58e5dc7c874dea
commit e576d82760c1e30a6104d82cbe58e5dc7c874dea
Merge: e35fb68 1763c31
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Oct 8 10:58:07 2013 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Tue Oct 8 10:58:07 2013 -0400

    Merge topic 'apple-clang-id' into next
    
    1763c31 Set policy CMP0025 to NEW while building CMake itself
    aa53ee5 Add policy CMP0025 for Apple Clang compiler id compatibility
    ab65862 Clang: Add separate "AppleClang" compiler id


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1763c31c3b964343b88f8f26dc2941dd8c0e1fbe
commit 1763c31c3b964343b88f8f26dc2941dd8c0e1fbe
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Oct 2 14:45:54 2013 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Oct 7 20:12:46 2013 -0400

    Set policy CMP0025 to NEW while building CMake itself
    
    CMake is aware of the policy's NEW behavior and the AppleClang compiler
    id.  Set the policy to NEW explicitly to avoid the warning and get the
    NEW behavior.
    
    Also teach the RunCMake test infrastructure to build tests with
    -DCMAKE_POLICY_DEFAULT_CMP0025=NEW to avoid the policy warning
    in test output that must match specific regular expressions.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1fbbe08..77b4604 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,6 +11,9 @@
 #=============================================================================
 cmake_minimum_required(VERSION 2.8.2 FATAL_ERROR)
 set(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required
+if(POLICY CMP0025)
+  cmake_policy(SET CMP0025 NEW)
+endif()
 project(CMake)
 
 if(CMAKE_BOOTSTRAP)
diff --git a/Source/kwsys/CMakeLists.txt b/Source/kwsys/CMakeLists.txt
index 0f27836..a9d89d4 100644
--- a/Source/kwsys/CMakeLists.txt
+++ b/Source/kwsys/CMakeLists.txt
@@ -85,6 +85,9 @@
 # written.
 
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6.3 FATAL_ERROR)
+IF(POLICY CMP0025)
+  CMAKE_POLICY(SET CMP0025 NEW)
+ENDIF()
 
 #-----------------------------------------------------------------------------
 # If a namespace is not specified, use "kwsys" and enable testing.
diff --git a/Tests/RunCMake/RunCMake.cmake b/Tests/RunCMake/RunCMake.cmake
index 00faa4c..6e58d62 100644
--- a/Tests/RunCMake/RunCMake.cmake
+++ b/Tests/RunCMake/RunCMake.cmake
@@ -36,6 +36,9 @@ function(run_cmake test)
   if(NOT DEFINED RunCMake_TEST_OPTIONS)
     set(RunCMake_TEST_OPTIONS "")
   endif()
+  if(APPLE)
+    list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0025=NEW)
+  endif()
   execute_process(
     COMMAND ${CMAKE_COMMAND} "${RunCMake_TEST_SOURCE_DIR}"
               -G "${RunCMake_GENERATOR}"
diff --git a/Utilities/cmcurl/CMakeLists.txt b/Utilities/cmcurl/CMakeLists.txt
index 74a713d..abf04d8 100644
--- a/Utilities/cmcurl/CMakeLists.txt
+++ b/Utilities/cmcurl/CMakeLists.txt
@@ -1,4 +1,7 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6.3 FATAL_ERROR)
+IF(POLICY CMP0025)
+  CMAKE_POLICY(SET CMP0025 NEW)
+ENDIF()
 PROJECT(LIBCURL C)
 
 # Setup package meta-data

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aa53ee57bb50faa3aa64e86cb58bbe2df6688335
commit aa53ee57bb50faa3aa64e86cb58bbe2df6688335
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Oct 2 14:10:38 2013 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Oct 7 20:12:46 2013 -0400

    Add policy CMP0025 for Apple Clang compiler id compatibility
    
    The parent commit introduced a separate "AppleClang" compiler id for
    Apple's Clang distribution.  Add a policy in order to support projects
    that expect this compiler's id to be just "Clang".  When the policy is
    OLD or not set, map AppleClang back to Clang.  Continue to use the
    AppleClang id internally while enabling the language, but set the
    CMAKE_<LANG>_COMPILER_ID after project() or enable_language() to the
    compatible value for use by project code.

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 7f2b592..2c3834a 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -616,6 +616,9 @@ 
cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
       {
       this->LanguageToOriginalSharedLibFlags[lang] = sharedLibFlags;
       }
+
+    // Translate compiler ids for compatibility.
+    this->CheckCompilerIdCompatibility(mf, lang);
     } // end for each language
 
   // Now load files that can override any settings on the platform or for
@@ -632,6 +635,44 @@ 
cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
 }
 
 //----------------------------------------------------------------------------
+void cmGlobalGenerator::CheckCompilerIdCompatibility(cmMakefile* mf,
+                                                     std::string lang)
+{
+  std::string compilerIdVar = "CMAKE_" + lang + "_COMPILER_ID";
+  const char* compilerId = mf->GetDefinition(compilerIdVar.c_str());
+  if(compilerId && strcmp(compilerId, "AppleClang") == 0)
+    {
+    cmPolicies* policies = this->CMakeInstance->GetPolicies();
+    switch(mf->GetPolicyStatus(cmPolicies::CMP0025))
+      {
+      case cmPolicies::WARN:
+        if(!this->CMakeInstance->GetIsInTryCompile())
+          {
+          cmOStringStream w;
+          w << policies->GetPolicyWarning(cmPolicies::CMP0025) << "\n"
+            "Converting " << lang <<
+            " compiler id \"AppleClang\" to \"Clang\" for compatibility."
+            ;
+          mf->IssueMessage(cmake::AUTHOR_WARNING, w.str());
+          }
+      case cmPolicies::OLD:
+        // OLD behavior is to convert AppleClang to Clang.
+        mf->AddDefinition(compilerIdVar.c_str(), "Clang");
+        break;
+      case cmPolicies::REQUIRED_IF_USED:
+      case cmPolicies::REQUIRED_ALWAYS:
+        mf->IssueMessage(
+          cmake::FATAL_ERROR,
+          policies->GetRequiredPolicyError(cmPolicies::CMP0025)
+          );
+      case cmPolicies::NEW:
+        // NEW behavior is to keep AppleClang.
+        break;
+      }
+    }
+}
+
+//----------------------------------------------------------------------------
 const char*
 cmGlobalGenerator::GetLanguageOutputExtension(cmSourceFile const& source)
 {
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 18aba24..70f6e32 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -383,6 +383,8 @@ private:
   void WriteSummary();
   void WriteSummary(cmTarget* target);
 
+  void CheckCompilerIdCompatibility(cmMakefile* mf, std::string lang);
+
   cmExternalMakefileProjectGenerator* ExtraGenerator;
 
   // track files replaced during a Generate
diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx
index 45670b3..c3d6a94 100644
--- a/Source/cmPolicies.cxx
+++ b/Source/cmPolicies.cxx
@@ -620,6 +620,23 @@ cmPolicies::cmPolicies()
     "The NEW behavior for this policy is to not to allow including the "
     "result of an export() command.",
     2,8,13,0, cmPolicies::WARN);
+
+  this->DefinePolicy(
+    CMP0025, "CMP0025",
+    "Compiler id for Apple Clang is now AppleClang.",
+    "CMake >= 2.8.13 recognize that Apple Clang is a different compiler "
+    "than upstream Clang and that they have different version numbers.  "
+    "CMake now prefers to present this to projects by setting "
+    "CMAKE_<LANG>_COMPILER_ID to \"AppleClang\" instead of \"Clang\".  "
+    "However, existing projects may assume the compiler id for Apple Clang "
+    "is just \"Clang\" as it was in CMake < 2.8.13.  "
+    "Therefore this policy determines for Apple Clang which compiler id "
+    "to report in CMAKE_<LANG>_COMPILER_ID after <LANG> is enabled by "
+    "the project() or enable_language() command."
+    "\n"
+    "The OLD behavior for this policy is to use compiler id \"Clang\".  "
+    "The NEW behavior for this policy is to use compiler id \"AppleClang\".",
+    2,8,13,0, cmPolicies::WARN);
 }
 
 cmPolicies::~cmPolicies()
diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h
index bafe5b2..ec8959d 100644
--- a/Source/cmPolicies.h
+++ b/Source/cmPolicies.h
@@ -75,6 +75,7 @@ public:
     CMP0022, ///< INTERFACE_LINK_LIBRARIES defines the link interface
     CMP0023, ///< Disallow mixing keyword and plain tll signatures
     CMP0024, ///< Disallow including export() result.
+    CMP0025, ///< Compiler id for Apple Clang is now AppleClang
 
     /** \brief Always the last entry.
      *

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ab65862417adc80dfb18170a6bd70889a24fe045
commit ab65862417adc80dfb18170a6bd70889a24fe045
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Oct 2 13:52:48 2013 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Oct 7 20:12:46 2013 -0400

    Clang: Add separate "AppleClang" compiler id
    
    Apple distributes their own Clang build with their own version numbers
    that differ from upstream Clang.  Use the __apple_build_version__ symbol
    to identify the Apple Clang compiler and report the Apple Build Version
    as the fourth version component in CMAKE_<LANG>_COMPILER_VERSION.  Add
    Compiler/AppleClang-<lang> and Platform/Darwin-AppleClang-<lang> modules
    that simply include the upstream equivalents.
    
    Fix comparisons of CMAKE_<LANG>_COMPILER_ID to Clang in CMake's own
    source and tests to account for AppleClang.

diff --git a/Modules/CMakeCCompilerId.c.in b/Modules/CMakeCCompilerId.c.in
index 66a5582..56c11a0 100644
--- a/Modules/CMakeCCompilerId.c.in
+++ b/Modules/CMakeCCompilerId.c.in
@@ -29,7 +29,12 @@
 # endif
 
 #elif defined(__clang__)
-# define COMPILER_ID "Clang"
+# if defined(__apple_build_version__)
+#  define COMPILER_ID "AppleClang"
+#  define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+# else
+#  define COMPILER_ID "Clang"
+# endif
 # define COMPILER_VERSION_MAJOR DEC(__clang_major__)
 # define COMPILER_VERSION_MINOR DEC(__clang_minor__)
 # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
diff --git a/Modules/CMakeCXXCompilerId.cpp.in 
b/Modules/CMakeCXXCompilerId.cpp.in
index 5e87715..2b8bf6e 100644
--- a/Modules/CMakeCXXCompilerId.cpp.in
+++ b/Modules/CMakeCXXCompilerId.cpp.in
@@ -34,7 +34,12 @@
 # endif
 
 #elif defined(__clang__)
-# define COMPILER_ID "Clang"
+# if defined(__apple_build_version__)
+#  define COMPILER_ID "AppleClang"
+#  define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+# else
+#  define COMPILER_ID "Clang"
+# endif
 # define COMPILER_VERSION_MAJOR DEC(__clang_major__)
 # define COMPILER_VERSION_MINOR DEC(__clang_minor__)
 # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
diff --git a/Modules/Compiler/AppleClang-ASM.cmake 
b/Modules/Compiler/AppleClang-ASM.cmake
new file mode 100644
index 0000000..f52bde0
--- /dev/null
+++ b/Modules/Compiler/AppleClang-ASM.cmake
@@ -0,0 +1 @@
+include(Compiler/Clang-ASM)
diff --git a/Modules/Compiler/AppleClang-C.cmake 
b/Modules/Compiler/AppleClang-C.cmake
new file mode 100644
index 0000000..44070b8
--- /dev/null
+++ b/Modules/Compiler/AppleClang-C.cmake
@@ -0,0 +1 @@
+include(Compiler/Clang-C)
diff --git a/Modules/Compiler/AppleClang-CXX.cmake 
b/Modules/Compiler/AppleClang-CXX.cmake
new file mode 100644
index 0000000..680f720
--- /dev/null
+++ b/Modules/Compiler/AppleClang-CXX.cmake
@@ -0,0 +1 @@
+include(Compiler/Clang-CXX)
diff --git a/Modules/Platform/Darwin-AppleClang-C.cmake 
b/Modules/Platform/Darwin-AppleClang-C.cmake
new file mode 100644
index 0000000..98971bb
--- /dev/null
+++ b/Modules/Platform/Darwin-AppleClang-C.cmake
@@ -0,0 +1 @@
+include(Platform/Darwin-Clang-C)
diff --git a/Modules/Platform/Darwin-AppleClang-CXX.cmake 
b/Modules/Platform/Darwin-AppleClang-CXX.cmake
new file mode 100644
index 0000000..4e9e7c1
--- /dev/null
+++ b/Modules/Platform/Darwin-AppleClang-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/Darwin-Clang-CXX)
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index c4f6216..a2a1bd6 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -1606,6 +1606,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
      "Possible values include:\n"
      "  Absoft = Absoft Fortran (absoft.com)\n"
      "  ADSP = Analog VisualDSP++ (analog.com)\n"
+     "  AppleClang = Apple Clang (apple.com)\n"
      "  Clang = LLVM Clang (clang.llvm.org)\n"
      "  Cray = Cray Compiler (cray.com)\n"
      "  Embarcadero, Borland = Embarcadero (embarcadero.com)\n"
diff --git a/Tests/Assembler/CMakeLists.txt b/Tests/Assembler/CMakeLists.txt
index bb4bccc..1f07dc9 100644
--- a/Tests/Assembler/CMakeLists.txt
+++ b/Tests/Assembler/CMakeLists.txt
@@ -9,7 +9,7 @@ set(SRCS)
 # and also generate assembler files from C:
 if("${CMAKE_GENERATOR}" MATCHES "Makefile|Xcode" AND
     NOT CMAKE_OSX_ARCHITECTURES)
-  if(("${CMAKE_C_COMPILER_ID}" MATCHES "^(GNU|Clang|HP|SunPro|XL)$") OR 
("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel"  AND  UNIX))
+  if(("${CMAKE_C_COMPILER_ID}" MATCHES 
"^(GNU|Clang|AppleClang|HP|SunPro|XL)$") OR ("${CMAKE_C_COMPILER_ID}" STREQUAL 
"Intel"  AND  UNIX))
     set(C_FLAGS "${CMAKE_C_FLAGS}")
     separate_arguments(C_FLAGS)
     if(CMAKE_OSX_SYSROOT AND CMAKE_C_SYSROOT_FLAG AND NOT ";${C_FLAGS};" 
MATCHES ";${CMAKE_C_SYSROOT_FLAG};")
diff --git a/Tests/IncludeDirectories/CMakeLists.txt 
b/Tests/IncludeDirectories/CMakeLists.txt
index 35ad8dc..9ee1957 100644
--- a/Tests/IncludeDirectories/CMakeLists.txt
+++ b/Tests/IncludeDirectories/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required (VERSION 2.6)
 project(IncludeDirectories)
 
 if (((CMAKE_C_COMPILER_ID STREQUAL GNU AND CMAKE_C_COMPILER_VERSION 
VERSION_GREATER 4.4)
-    OR CMAKE_C_COMPILER_ID STREQUAL Clang)
+    OR CMAKE_C_COMPILER_ID STREQUAL Clang OR CMAKE_C_COMPILER_ID STREQUAL 
AppleClang)
     AND (CMAKE_GENERATOR STREQUAL "Unix Makefiles" OR CMAKE_GENERATOR STREQUAL 
"Ninja"))
   include(CheckCXXCompilerFlag)
   check_cxx_compiler_flag(-Wunused-variable run_sys_includes_test)
diff --git a/Utilities/cmlibarchive/CMakeLists.txt 
b/Utilities/cmlibarchive/CMakeLists.txt
index 8ef0e89..132bfeb 100644
--- a/Utilities/cmlibarchive/CMakeLists.txt
+++ b/Utilities/cmlibarchive/CMakeLists.txt
@@ -56,7 +56,7 @@ SET(CMAKE_REQUIRED_FLAGS)
 
 # Disable warnings to avoid changing 3rd party code.
 IF("${CMAKE_C_COMPILER_ID}" MATCHES
-    "^(GNU|Clang|XL|VisualAge|SunPro|MIPSpro|HP|Intel)$")
+    "^(GNU|Clang|AppleClang|XL|VisualAge|SunPro|MIPSpro|HP|Intel)$")
   SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
 ELSEIF("${CMAKE_C_COMPILER_ID}" MATCHES "^(PathScale)$")
   SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -woffall")

-----------------------------------------------------------------------

Summary of changes:
 CMakeLists.txt                               |    3 ++
 Modules/CMakeCCompilerId.c.in                |    7 ++++-
 Modules/CMakeCXXCompilerId.cpp.in            |    7 ++++-
 Modules/Compiler/AppleClang-ASM.cmake        |    1 +
 Modules/Compiler/AppleClang-C.cmake          |    1 +
 Modules/Compiler/AppleClang-CXX.cmake        |    1 +
 Modules/Platform/Darwin-AppleClang-C.cmake   |    1 +
 Modules/Platform/Darwin-AppleClang-CXX.cmake |    1 +
 Source/cmDocumentVariables.cxx               |    1 +
 Source/cmGlobalGenerator.cxx                 |   41 ++++++++++++++++++++++++++
 Source/cmGlobalGenerator.h                   |    2 +
 Source/cmPolicies.cxx                        |   17 +++++++++++
 Source/cmPolicies.h                          |    1 +
 Source/kwsys/CMakeLists.txt                  |    3 ++
 Tests/Assembler/CMakeLists.txt               |    2 +-
 Tests/IncludeDirectories/CMakeLists.txt      |    2 +-
 Tests/RunCMake/RunCMake.cmake                |    3 ++
 Utilities/cmcurl/CMakeLists.txt              |    3 ++
 Utilities/cmlibarchive/CMakeLists.txt        |    2 +-
 19 files changed, 94 insertions(+), 5 deletions(-)
 create mode 100644 Modules/Compiler/AppleClang-ASM.cmake
 create mode 100644 Modules/Compiler/AppleClang-C.cmake
 create mode 100644 Modules/Compiler/AppleClang-CXX.cmake
 create mode 100644 Modules/Platform/Darwin-AppleClang-C.cmake
 create mode 100644 Modules/Platform/Darwin-AppleClang-CXX.cmake


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits

Reply via email to