[CMake] MacOSX Framework handling
Daniel Franke
franke.daniel at gmail.com
Sun Jul 22 14:33:27 EDT 2012
Hi all.
I try to set install/package a cmake project on MacOSX. Questions first,
please find the details below.
- does cmake support multiple .dylib in a single framework? (do Frameworks
support this at all?)
- does cmake support Umbrella Frameworks (umbrella Frameworks may contain
other Frameworks [1])?
- how to include header files in Frameworks?
The information I found via google is from 2010 or older and mostly about work
in progress [2]. Pointers or suggestions on Mac packaging would be highly
welcome.
Thanks
Daniel
[1]
https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html
[2] http://www.cmake.org/Wiki/CMake:MacOSX_Frameworks
--
This is were I come from: in my project, there are two GUI applications (.app
bundles) that depend on Qt4, one console application (not a bundle) and a
bunch of shared libraries/frameworks between the three.
Options I considered so far:
* embedded dependencies in bundles using BundleUtilities/DeployQt4
-> two copies of Qt and project libraries, one each for the GUI bundles,
but the console program doesn't have a .app directory to store its
dependencies?!
* prepare an installation folder like:
- foo.app/...
- bar.app/...
- bin/console_prog
- Frameworks/...
-> doesn't work as the Frameworks require "fixing up", i.e. setting
the "@executable_path" to find other frameworks: *.app and bin/*
require different paths here
* install shared libraries to /usr/lib and forget about Frameworks
-> not the Mac way, but would probably work
* install Frameworks to /Library/Frameworks
-> the Mac way, should work
So, although I wanted to keep everything in one directory for simple uninstall
(remove the directory), I guess I have to distribute the files across the file
system. Now, instead of installing 5+ specific shared libraries or frameworks,
I'd like to have one ${project}.framework instead that contains all the
.dylibs or all the other frameworks ...
More information about the CMake
mailing list