[QBS] Post Build process to install_name_tool

Jake Petroules jake.petroules at petroules.com
Sat Sep 6 00:45:47 CEST 2014


On 2014-09-05, at 04:18 AM, olivier musse <olivier.musse at sfr.fr> wrote:

> Hi,
> 
> Thanks for these informations, they are precious.
> In fact we are already using the cpp.rpaths property and the 
> cpp.installNamePrefix property is not documented.
> Whatever this does not work for our case but perhaps we are not using it 
> the right case.
> Our case is the following : we develop plugins for a not Qt application 
> and we need to deploy Qt with the plugins (Qt is not installed on the 
> target platform and must be automatically deployed with the application)
> So with the cpp.installNamePrefix, only the install_name of the 
> executable is set to "@rpath" and we would like it also to be set for Qt 
> library
> So we have something like
>  @rpath/AudioPlugin (compatibility version 0.0.0, current version 0.0.0)
>  /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 57.0.0)
>  /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.0.0)
>  /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 
> (compatibility version 1.0.0, current version 275.0.0)
>  /usr/local/qt-5.3.0-mana/lib/QtCore.framework/Versions/5/QtCore 
> (compatibility version 5.3.0, current version 5.3.0)
>  /usr/local/qt-5.3.0-mana/lib/QtGui.framework/Versions/5/QtGui 
> (compatibility version 5.3.0, current version 5.3.0)
>  /usr/local/qt-5.3.0-mana/lib/QtNetwork.framework/Versions/5/QtNetwork 
> (compatibility version 5.3.0, current version 5.3.0)
>  /usr/local/qt-5.3.0-mana/lib/QtMultimedia.framework/Versions/5/QtMultimedia (compatibility version 5.3.0, current version 5.3.0)
>  /usr/local/qt-5.3.0-mana/lib/QtWidgets.framework/Versions/5/QtWidgets 
> (compatibility version 5.3.0, current version 5.3.0)
>  /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current 
> version 56.0.0)
>  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
> version 169.3.0)
> and we need to have something like
>  @rpath/AudioPlugin (compatibility version 0.0.0, current version 0.0.0)
>  /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 57.0.0)
>  /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.0.0)
>  /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 
> (compatibility version 1.0.0, current version 275.0.0)
> @rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.3.0, 
> current version 5.3.0)
> @rpath/QtGui.framework/Versions/5/QtGui (compatibility version 5.3.0, 
> current version 5.3.0)
> @rpath/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 
> 5.3.0, current version 5.3.0)
> @rpath/QtMultimedia.framework/Versions/5/QtMultimedia (compatibility 
> version 5.3.0, current version 5.3.0)
>  /usr/local/qt-5.3.0-mana/lib/QtWidgets.framework/Versions/5/QtWidgets 
> (compatibility version 5.3.0, current version 5.3.0)
>  /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current 
> version 56.0.0)
>  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
> version 169.3.0)
> 
> Since we are not experimented OSX developers (sorry for that) we are 
> perhaps not doing well.
> 
> Many thanks in advance for you help
> 
> Regards
> 
> 
> Olivier
> 
> _______________________________________________
> QBS mailing list
> QBS at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qbs

Because the Qt libraries are an external dependency of your project, you will indeed need to use install_name_tool to set the install name for just those libraries. This is a shortcoming of Qt itself which we are planning to address for the 5.4 release (all Qt libraries should have @rpath install names then as the default configuration).
-- 
Jake Petroules - jake.petroules at petroules.com
Chief Technology Officer - Petroules Corporation


More information about the Qbs mailing list