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  0be1721b533ae213fc255aeb5063f3dee204c8d2 (commit)
       via  20278872e3d8145f4aa81ea6cde01144daa3ca8f (commit)
      from  70184a7716b16cef891d80d57c506571aa6d2744 (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=0be1721b533ae213fc255aeb5063f3dee204c8d2
commit 0be1721b533ae213fc255aeb5063f3dee204c8d2
Merge: 70184a7 2027887
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Thu Oct 13 14:11:33 2016 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Thu Oct 13 14:11:33 2016 -0400

    Merge topic 'ninja-framework-POST_BUILD' into next
    
    20278872 Ninja: Fix POST_BUILD commands on macOS Frameworks


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=20278872e3d8145f4aa81ea6cde01144daa3ca8f
commit 20278872e3d8145f4aa81ea6cde01144daa3ca8f
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Thu Oct 13 13:51:10 2016 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Thu Oct 13 14:04:12 2016 -0400

    Ninja: Fix POST_BUILD commands on macOS Frameworks
    
    The condition added by commit v2.8.12~179^2 (OS X: Fix regression
    handling frameworks for Ninja, 2013-07-16) for excluding use of
    versioning symlinks on macOS Frameworks must match that used for
    POST_BUILD selection.  Otherwise we place the POST_BUILD commands after
    a symlink step that is never added.
    
    Closes: #16363

diff --git a/Source/cmNinjaNormalTargetGenerator.cxx 
b/Source/cmNinjaNormalTargetGenerator.cxx
index 095c703..6d915ea 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -645,7 +645,9 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
   std::string postBuildCmdLine = localGen.BuildCommandLine(postBuildCmdLines);
 
   cmNinjaVars symlinkVars;
-  if (targetOutput == targetOutputReal) {
+  bool const symlinkNeeded =
+    (targetOutput != targetOutputReal && !gt.IsFrameworkOnApple());
+  if (!symlinkNeeded) {
     vars["POST_BUILD"] = postBuildCmdLine;
   } else {
     vars["POST_BUILD"] = ":";
@@ -687,7 +689,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
                        commandLineLengthLimit, &usedResponseFile);
   this->WriteLinkRule(usedResponseFile);
 
-  if (targetOutput != targetOutputReal && !gt.IsFrameworkOnApple()) {
+  if (symlinkNeeded) {
     if (targetType == cmState::EXECUTABLE) {
       globalGen.WriteBuild(
         this->GetBuildFileStream(),
diff --git a/Tests/Framework/CMakeLists.txt b/Tests/Framework/CMakeLists.txt
index 29f9838..271aaf1 100644
--- a/Tests/Framework/CMakeLists.txt
+++ b/Tests/Framework/CMakeLists.txt
@@ -51,6 +51,11 @@ install(TARGETS foo bar
   # duplicate install rules for the pieces of the framework.
 )
 
+# test that framework post-build commands run
+add_custom_command(TARGET foo POST_BUILD COMMAND ${CMAKE_COMMAND} -E touch 
foo-post-build)
+add_custom_target(fooCustom ALL COMMAND ${CMAKE_COMMAND} -E copy 
foo-post-build foo-custom)
+add_dependencies(fooCustom foo)
+
 # Make a static library and apply the framework properties to it to verify
 # that everything still builds correctly, but it will not actually produce
 # a framework... The framework properties only apply when the library type

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

Summary of changes:
 Source/cmNinjaNormalTargetGenerator.cxx |    6 ++++--
 Tests/Framework/CMakeLists.txt          |    5 +++++
 2 files changed, 9 insertions(+), 2 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