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  2969f55026a2bb77f063c6c119a9c9e3afc35854 (commit)
       via  8263a78cab321419a6d8839e78317673cd2779a2 (commit)
      from  3c5549e5d6d8b3651f7696e5f9daade18ffab621 (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=2969f55026a2bb77f063c6c119a9c9e3afc35854
commit 2969f55026a2bb77f063c6c119a9c9e3afc35854
Merge: 3c5549e 8263a78
Author:     Gregor Jasny <gja...@googlemail.com>
AuthorDate: Thu Dec 29 05:07:28 2016 -0500
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Thu Dec 29 05:07:28 2016 -0500

    Merge topic '16253-xcode-effective-platform-name' into next
    
    8263a78c fixup! Xcode: Always emit EFFECTIVE_PLATFORM_NAME


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8263a78cab321419a6d8839e78317673cd2779a2
commit 8263a78cab321419a6d8839e78317673cd2779a2
Author:     Gregor Jasny <gja...@googlemail.com>
AuthorDate: Thu Dec 29 10:55:50 2016 +0100
Commit:     Gregor Jasny <gja...@googlemail.com>
CommitDate: Thu Dec 29 10:55:50 2016 +0100

    fixup! Xcode: Always emit EFFECTIVE_PLATFORM_NAME

diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index aeda728..c2a76e4 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -4419,9 +4419,9 @@ bool cmGeneratorTarget::ComputeOutputDir(const 
std::string& config,
 
   // The generator may add the configuration's subdirectory.
   if (!conf.empty()) {
-    bool isXcode = this->Makefile->IsOn("XCODE");
+    bool useEPN = this->Makefile->ShouldEmitEffectivePlatformName();
     std::string suffix =
-      usesDefaultOutputDir && isXcode ? "${EFFECTIVE_PLATFORM_NAME}" : "";
+      usesDefaultOutputDir && useEPN ? "${EFFECTIVE_PLATFORM_NAME}" : "";
     this->LocalGenerator->GetGlobalGenerator()->AppendDirectoryForConfig(
       "/", conf, suffix, out);
   }
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 828a0ca..c2767f0 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -2342,8 +2342,8 @@ void cmGlobalGenerator::AddGlobalTarget_Install(
     singleLine.push_back(cmd);
     if (cmakeCfgIntDir && *cmakeCfgIntDir && cmakeCfgIntDir[0] != '.') {
       std::string cfgArg = "-DBUILD_TYPE=";
-      bool isXcode = mf->IsOn("XCODE");
-      if (isXcode) {
+      bool useEPN = mf->ShouldEmitEffectivePlatformName();
+      if (useEPN) {
         cfgArg += "$(CONFIGURATION)";
         singleLine.push_back(cfgArg);
         cfgArg = "-DEFFECTIVE_PLATFORM_NAME=$(EFFECTIVE_PLATFORM_NAME)";
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index fccb486..0656b0a 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -2184,6 +2184,22 @@ bool cmMakefile::PlatformIsAppleIos() const
   return false;
 }
 
+bool cmMakefile::ShouldEmitEffectivePlatformName() const
+{
+  bool isXcode = this->IsOn("XCODE");
+  if (!isXcode) {
+    return false;
+  }
+
+  const char* xcodeVersion = this->GetDefinition("XCODE_VERSION");
+  if (!xcodeVersion ||
+      cmSystemTools::VersionCompareGreater("5", xcodeVersion)) {
+    return false;
+  }
+
+  return true;
+}
+
 const char* cmMakefile::GetSONameFlag(const std::string& language) const
 {
   std::string name = "CMAKE_SHARED_LIBRARY_SONAME";
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 3484e5a..f929951 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -427,6 +427,9 @@ public:
   /** Return whether the target platform is Apple iOS.  */
   bool PlatformIsAppleIos() const;
 
+  /** Return whether the generator should use EFFECTIVE_PLATFORM_NAME.  */
+  bool ShouldEmitEffectivePlatformName() const;
+
   /** Retrieve soname flag for the specified language if supported */
   const char* GetSONameFlag(const std::string& language) const;
 

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

Summary of changes:
 Source/cmGeneratorTarget.cxx |    4 ++--
 Source/cmGlobalGenerator.cxx |    4 ++--
 Source/cmMakefile.cxx        |   16 ++++++++++++++++
 Source/cmMakefile.h          |    3 +++
 4 files changed, 23 insertions(+), 4 deletions(-)


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

Reply via email to