[Qgis-developer] CMake cleanup and OS X frameworks

John C. Tull john.tull at wildnevada.org
Tue Jul 5 19:52:30 EDT 2011


I had this issue also, worked around it by copying that directory over. I don't know if this is related, but trying to access the preferences now brings up the shortcut dialog. Settings --> Options gets to preferences, though.

Personally, I'd love to see the menus get cleaned up so that qgis looks/feels/acts more like a mac application on mac platforms. This is a problem that arose sometime after 1.4 or 1.5, but it is now becoming more than a distraction. Multiple, redundant (you like that irony?) menu items, disorganized menu structures, Help menu not last in the menu bar, etc.

I wish I knew how to poke around in the ui files to try and fix this, but I do not. So no solutions provided here, only complaints. Sorry about that.

Cheers,
John

On Jul 5, 2011, at 3:50 PM, Tom Elwertowski wrote:

> Hi William,
> 
> I encountered the following error using your update:
> 
> CMake Error at images/icons/CMakeLists.txt:12 (ADD_SUBDIRECTORY):
>  add_subdirectory given source "mac" which is not an existing directory.
> 
> It looks like icon files weren't moved from src/mac to images/icons/mac.
> 
> Tom
> 
> 
> William Kyngesburye wrote:
>> 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
>> Qgis-developer at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>> 
> 
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer



More information about the Qgis-developer mailing list