Difference between revisions of "Notes on OSX port"

From GCompris
Jump to: navigation, search
m (Reverted edit of OloerGetcp, changed back to last version by Bruno)
(Removed deprecated explanations.)
Line 1: Line 1:
GCompris on OSX.
+
We provide a bundle for GCompris on MacOSX. To compile it we followed the instructions [http://gtk-osx.sourceforge.net/ here].
 
 
[[Image:Gcompris osx_s.png]]
 
 
 
== Compilation modification ==
 
* add sdl.m4 into acinclude.m4. '''Needs cleaning, sdl.m4 is not used on OSX !'''
 
* add '''#define NO_IMPORT_PYGOBJECT 1''' before ''#include <pygobject.h>''
 
* Change on SDL/SDL_mixer détection. My opinion is to use OSX frameworks. SDL_mixer framework looks broken for now: missing SDL/ in headers #include (use of SDL framework.. ).
 
* Change #include for SDL* frameworks if we use them.
 
* suppress $LIBICONV in gcompris LDADD (multiply defined _locale_charset).
 
* Add check if argv[0] is full path beginning with /. If yes, get the install prefix from it. Usefull for GCompris.app relocatable OSX bundle.
 
* GNUcap detection looks broken:
 
<pre>
 
gcompris: Dialog=Impossible de trouver le logiciel de simulation électrique « GnuCap ».
 
Vous pouvez le télécharger à l'adresse:
 
<http://geda.seul.org/tools/gnucap/>
 
Pour être détecté, l'exécutable doit être installé dans /usr/bin/gnucap ou /usr/local/bin/gnucap.
 
Vous pouvez tout de même utiliser cette activité pour construire des schéma électriques mais vous ne pourrez pas les simuler.
 
</pre>
 
J'ai ajouté un test au bon endroit.
 
* Même genre de test pourGNUchess.
 
 
 
== Native Gtk ==
 
* Works, but with bugs. Some small images abd some colors looks bad. The color selector is broken.
 
* Cairo/GTK are not frameworks. GTK is not relocatable (relocatable only on windows).  
 
* Wait a better version.
 
* [http://mail.gnome.org/archives/gtk-devel-list/2007-February/msg00081.html OSX support status on gtk-devel].
 
* [[Gtk OSX Using imendio script]]
 
 
 
== X11/GTK ==
 
* Check [http://inkscape.org/ inkscape] and [http://gimp-app.sourceforge.net/ Gimp.app] way.
 
* Gimp.app links to a [http://www.sveinbjorn.org/platypus Platypus] script (ScriptExec). inkscape seems use the same solution.
 
* Inkscape launch [http://inkscape.svn.sourceforge.net/viewvc/inkscape/inkscape/trunk/packaging/macosx/Resources/script?view=log a shell script] set lot of environnement variables to locate correctly libs.
 
 
 
== script launcher ([http://www.sveinbjorn.org/platypus Platypus])/ScriptExec ==
 
* Platypus create an exec application (a running .app bundle in fact) with a cocoa executable script launcher in Contents/MacOS and the script to run in Contents/Resources.
 
* [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp.app uses a modified version] (why?). Anyway this version does not compile with my xcode.
 
* [http://inkscape.svn.sourceforge.net/viewvc/inkscape/inkscape/trunk/packaging/macosx/ScriptExec/ Inkscape seems have a already modified version with right extension] (xcodeproj). <strike>To be tested</strike> Direct compilation fails too. Needs to suppress libstdc++.a from External resources. Builds ok and works ok without it.
 
* This Xcode compilation gives the bundle executable. ([http://gimp-app.sourceforge.net/gimp.app.howto.txt From here]: ''copy ScriptExec/build/ScriptExec.app/Contents/MacOS/ScriptExec to Gimp.app/Contents/MacOS/Gimp'' )
 
* Need to set XCode to ''Deployment'' target, for the compilation to be complete.
 
 
 
== Notes on launch script ==
 
* The PANGO_RC_FILES need no " around the filenmae. Looks as a modifiction with svn pango.
 
* The actuyal  Gimp.app script looks better: Uses /tmp instead of .gcompris-etc to put the modified files at launch.
 
 
 
== NSBundle without launch script ==
 
=== Why ? ===
 
Because GCompris can get bundle resource path and uses main osx menu if it's run as main execuatble in the bundle.
 
=== How ===
 
Script is used to:
 
* set the DYLD_LIBRARY_PATH (MacOSX) or LD_RUN_PATH (Linux).
 
* set the lang correctly.
 
* Initialise the files from $resourcePath/etc/gtk-2.0|pango with correct path
 
 
 
Ideas:
 
# Uses of rpath (linux) with "-Wl,-rpath=\$ORIGIN/../lib" in LDFLAGS, and install_name_tool with @executable_path/../lib should solve the DYLD_LIBRARY_PATH/LD_RUN_PATH.
 
# Uses of init function at start to fix the lang.
 
# Uses of init function at start to fix the $resourcePath/etc/gtk-2.0|pango files and set the environnement variables (setenv()).
 

Revision as of 21:02, 4 July 2010

We provide a bundle for GCompris on MacOSX. To compile it we followed the instructions here.