[CMake] CPack MacOSX support

David Cole david.cole at kitware.com
Thu Oct 11 13:47:54 EDT 2007


If the library is built by CMake, you can use the INSTALL_NAME_DIR
property to achieve @executable_path or @loader_path relative
references. This example comes from
CMake/Tests/BundleTest/CMakeLists.txt:

SET_TARGET_PROPERTIES(BundleTestLib PROPERTIES
  INSTALL_NAME_DIR "@executable_path/../Plugins")

The install scripts generated for the "make install" tree should
properly make all necessary install_name_tool calls to fixup
executables and libraries that are built by CMake.

Does that answer your question all the way?

HTH,
David

On 10/11/07, Mike Jackson <imikejackson at gmail.com> wrote:
> along these same lines, how is cmake handling the issue with paths in
> OS X libraries such as @executable_path/../Frameworks ?
>
> Simply copying the library inside the App bundle will not work most
> of the time. Is there any upcoming support to allow the setting of
> the rpath in generated libraries? Scripts for running
> install_name_tool on a library and picking up all the dependancies?
>
> Thanks
> --
> Mike Jackson   Senior Research Engineer
> Innovative Management & Technology Services
>
>
> On Oct 11, 2007, at 1:18 PM, David Cole wrote:
>
> > On 10/11/07, Félix C. Morency <felix.morency at gmail.com> wrote:
> >> 1. Is there any way to include 3rd party libraries in a generated
> >> bundle
> >> (.app) with CMake/CPack (.dmg) ? Currently, the 3rd party are out
> >> of the
> >> bundle and this is quite ungood since the bundle architecture
> >> provides
> >> resources support. Anyone ever done it before ?
> >
> > Could you give a concrete example of what you'd like to do here? (Just
> > copy an existing library or resource file into your bundle somewhere?)
> >
> >
> >> 2. The PackageMaker (.dmg) and Bundle generator (.app) support
> >> seem limited
> >> within CPack. I haven't found a way yet to change the default
> >> installation
> >> path (from /usr/bin to /Applications) and I think this is quite
> >> important.
> >> I'm thinking about logging a bug about this issue. The
> >> documentation is also
> >> lacking informations about those tools.
> >
> > In CVS CMake, there is support in the INSTALL(TARGETS command for a
> > separate BUNDLE DESTINATION if the target in question is a Mac bundle
> > application. If you use this with an absolute path, like "BUNDLE
> > DESTINATION /Applications/MyApp" it should work with "make install"
> > and also with any generated CPack installers. If you could try it out
> > with CVS CMake and let the list know your results, that would be
> > great. The new INSTALL command arguments are not fully documented yet,
> > but the code should work now.
> >
> > HTH,
> > David Cole
> > _______________________________________________
> > CMake mailing list
> > CMake at cmake.org
> > http://www.cmake.org/mailman/listinfo/cmake
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>


More information about the CMake mailing list