[cmake-developers] fix-OSX-bundle-rpaths-and-Qt5 topic

clinton at elemtech.com clinton at elemtech.com
Thu Oct 9 09:43:08 EDT 2014



----- Original Message -----
> On 10/08/2014 11:05 AM, clinton at elemtech.com wrote:
> > I pushed more fixes for this.  Instead of requiring 10.6,
> > I took the other path of warning when rpaths need changed
> > at install time and skip it.
> > This should also fix the CMP0042 test which started failing.
> 
> Thanks.  The message is currently:
> 
> > +      msg << "WARNING: Target \"" << this->Target->GetName()
> > +        << "\" has runtime paths which cannot be changed during install.
> > "
> > +        << "To change runtime paths, OS X version 10.6 or newer is
> > required.  "
> > +        << "Therefore, runtime paths will not be changed when
> > installing.";
> > +      cmSystemTools::Message(msg.str().c_str(), "Warning");
> 
> Can that be changed to an IssueMessage, possibly on a cmMakefile
> for at least a little context?  Also it should suggest using
> CMAKE_BUILD_WITH_INSTALL_RPATH.
> 
> > By the way, Brad, your change to require 10.6 for the
> > BundleUtilities test is no longer required on the rpath-osx-10_6 topic.
> > 
> 
> I thought it was a missing piece of your original change.
> Since you've reverted that I've now reverted mine so we'll
> see how testing goes.
> 
> > However, it may still be required for the fix-OSX-bundle-rpaths-and-Qt5
> > topic.
> 
> I rebased rpath-osx-10_6 on fix-OSX-bundle-rpaths-and-Qt5 to
> make local testing of both together easier.  Please base the
> above-requested fixes on:
> 
>  OSX: Warn when attempting to change runtime paths on OS X 10.5
>  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a6e58f55
> 

Adam,

I was looking at the BundleUtilities failure after the above fixes, and I noticed it unconditionally removes rpaths.
Is there a reason for that?

If the user does 
set_target_properties(testbundleutils1 module1 PROPERTIES
                      INSTALL_RPATH "${CMAKE_CURRENT_BINARY_DIR}/testdir1"
                      BUILD_WITH_INSTALL_RPATH 1)

The new BundleUtilities.cmake will strip that rpath.
The attempt to strip those rpaths fails on OS X 10.5, because install_name_tool does not recognize  the -delete_rpath.
The test fails because the -id and -change portion of the install_name_tool command is prevented by the error from the use of -delete_rpath.

Perhaps we can separate the -delete_rpath part into its own call to install_name_tool.  If it fails, the failure can be ignored (as it previously ignored install_name_tool failures).  Or maybe there is another idea.

Clint



More information about the cmake-developers mailing list