[Qgis-developer] QGIS and Xcode

William Kyngesburye woklist at kyngchaos.com
Sun Feb 1 13:08:25 EST 2009


On Feb 1, 2009, at 10:39 AM, Gary Sherman wrote:

> I know there was some discussion on this in the past. Has anyone  
> successfully used Xcode to build QGIS?
>
> -gary


It's certainly possible.  I messed around with a Qgis Xcode project  
once upon a time.  There are 2 approaches:

- quick-n-dirty: run the configure/cmake + make + make install from  
Xcode.  This doesn't realy gain much over doing the same from a  
Terminal, but you can run post-processing and bundling scripts in it,  
and it helps to standardize some configuration options that will not  
change for OSX.  Very easy to maintain, since all configuration and  
compilation is external.

- the-right-way: completely redo configuration and compilation to  
Xcode methods.  This is what I tried for Qgis.  It requires keeping  
the Xcode project in sync with the cmake method - which source files  
to compile, names of targets, ...  Xcode doesn't have a wildcard  
source specifier - all sources must be explicitly listed in the  
project (Qgis may already do that in cmake?).  There is no way to use  
a list of files from a text file (such as the cmakelists file), except  
to create an amalgamation source to be compiled.  And a non-Mac  
developer couldn't edit the Xcode project file to add or delete  
sources, it's a big XML mess.  This is what made me drop the Xcode  
method.

Dependency configuration is tricky.  I came up with a pretty flexible  
method to specify dependencies, including handling variations of  
framework vs library and static vs dynamic libs, but it still requires  
some manual editing of a configuration file.

The Qt stuff could be messy.  Custom rules could be made to do the Qt  
processing (might be some info in the Qt docs).  Or simply use inline  
scripts (quick-n-dirty but messy).

But it's much easier to do the packaging (automatic), and could take  
care of some of the problematic bits (like bug #768) more reliably.   
Bundling of external stuff like the Qt frameworks would also be quite  
simple.

For developers, the debugger GUI might be of interest.

Other interesting possibilities are 'frameworkizing' the Qgis  
libraries, and otherwise organizing the application package in a more  
Mac way (though some of this would require source changes to account  
for the paths).

If there is interest, and someone willing to maintain it (requires  
keeping track of new/deleted source files), I could work on an Xcode  
project.  (I might be persuaded to maintain it)  Now that the dust has  
settled with 1.0, it may be easier to keep an Xcode project maintained.

One problem would be Xcode versions.  Each OSX system version has its  
own Xcode version.  Early versions are importable into later versions,  
but I don't know if there is an export feature to go back.  I'd be  
doing this in Xcode 3 on Leopard, and at a minimum we should support  
Xcode 2.5 on Tiger.  Though, with their backward compatibility plan  
when they released Xcode 2.5 (it will run on Leopard), it's possible  
v2.5 can open v3 projects.

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

The equator is so long, it could encircle the earth completely once.



More information about the Qgis-developer mailing list