I did some CMake cleanup, along with changing the qgis libraries to frameworks 
for OS X.  Some notes:

- removed a lot of unnecessary conditionals for target configuration for 
platform-specific options.  Cmake is designed so that platform-specific options 
are only used for the platform, so they can all be specified in a single 
configuration command. ie for an application:

  ADD_EXECUTABLE ([exename] MACOSX_BUNDLE WIN32 [sources...])

- header installation is an automatic part of targets.  Though some headers may 
still need a separate install command (ui headers don't exist when cmake runs). 
 I also put all global header installation (qgsconfig.h, qgisplugin.h, 
qgsrendererplugin.h) in qgis_core, since in the OS X framework setup there is 
no place for random headers.

- core, gui, analysis, grass and sqlanywhere libs are now frameworks on OS X.  
I couldn't make qgispython a framework because it's loaded dynamically and the 
Qt dyld functions expect standard file extensions, and a framework has none 
(the binary inside the framework, that is).  Really, grass and sqlanywhere 
don't need to be frameworks, maybe I got carried away there ;)

There is also an option to install core, gui and analysis as "developer" 
frameworks.  This gets around the potential problem of the internal relative 
path linking, and makes the libraries more accessible.  The cmake option is 
QGIS_MACAPP_INSTALL_DEV (bool).  They are installed by default in 
/Library/Frameworks, but this can be changed with QGIS_MACAPP_DEV_PREFIX.

Note that the headers are not updated to make "proper" frameworks, so -I flags 
to each framework's Headers folder are still needed.  (A proper framework 
header references other framework headers prefixed by the framework name, ie 
#include <qgis_core/qgis.h>.  Needs some discussion about reorganizing the 
headers in QGIS, if there is interest.)

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"The beast is actively interested only in now, and, as it is always now and 
always shall be, there is an eternity of time for the accomplishment of 
objects."

- the wisdom of Tarzan





_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to