Difference between revisions of "Notes on OSX port"

From GCompris
Jump to: navigation, search
(Compilation modification)
Line 12: Line 12:
 
* GNUcap detection looks broken:
 
* GNUcap detection looks broken:
 
<pre>
 
<pre>
gcompris: Dialog=Impossible de trouver le logiciel de simulation électrique « GnuCap ».
+
gcompris: Dialog=Impossible de trouver le logiciel de simulation électrique « GnuCap ».
 
Vous pouvez le télécharger à l'adresse:
 
Vous pouvez le télécharger à l'adresse:
 
<http://geda.seul.org/tools/gnucap/>
 
<http://geda.seul.org/tools/gnucap/>
Line 43: Line 43:
 
* The PANGO_RC_FILES need no " around the filenmae. Looks as a modifiction with svn pango.
 
* 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.
 
* 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.
 +
* set the lang correctly.
 +
* Initialise the files from $resourcePath/etc/gtk-2.0|pango with correct path
 +
 +
Uses of rpath (linux) with "-Wl,-rpath=\$ORIGIN/../lib" in LDFLAGS, and install_name_tool with @executable_path/../lib should solve the (DY)LD_LIBRARY_PATH.

Revision as of 10:58, 21 March 2007

GCompris on OSX.

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:
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.

J'ai ajouté un test au bon endroit.

  • Même genre de test pourGNUchess.

Native Gtk

X11/GTK

  • Check inkscape and Gimp.app way.
  • Gimp.app links to a Platypus script (ScriptExec). inkscape seems use the same solution.
  • Inkscape launch a shell script set lot of environnement variables to locate correctly libs.

script launcher (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.
  • Gimp.app uses a modified version (why?). Anyway this version does not compile with my xcode.
  • Inkscape seems have a already modified version with right extension (xcodeproj). To be tested 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. (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.
  • set the lang correctly.
  • Initialise the files from $resourcePath/etc/gtk-2.0|pango with correct path

Uses of rpath (linux) with "-Wl,-rpath=\$ORIGIN/../lib" in LDFLAGS, and install_name_tool with @executable_path/../lib should solve the (DY)LD_LIBRARY_PATH.