Ajouter la librairie SDL à un bundle

Le
Carlo Noben
Bonjour,

J'essaye d'ajouter une interface GUI à un outil UNIX. J'ai réussi à faire
fonctionner l'outil que j'ai placé dans le bundle de l'application en
suivant l'exemple de Apple (code source de Moriarity).

Comme l'outil UNIX utilise la librairie SDL (www.libsdl.org) j'aimerais la
mettre aussi dans le bundle pour éviter que l'utilisateur n'ait à
l'installer séparément (en utilisant fink par exemple).

Est-ce qu'il y a un moyen de le faire?


Merci d'avance,
C.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Schmurtz
Le #6129
Carlo Noben wrote:

Bonjour,


De mêmeŠ

J'essaye d'ajouter une interface GUI à un outil UNIX. J'ai réussi à faire
fonctionner l'outil que j'ai placé dans le bundle de l'application en
suivant l'exemple de Apple (code source de Moriarity).

Comme l'outil UNIX utilise la librairie SDL (www.libsdl.org) j'aimerais la
mettre aussi dans le bundle pour éviter que l'utilisateur n'ait à
l'installer séparément (en utilisant fink par exemple).


Très bonne initiative.

Est-ce qu'il y a un moyen de le faire?


Je ne sais pas trop comment faire proprement, mais j'ai quelques idées,
les voici :

- tout simplement mettre la bibliothèque juste à coté du fichier
exécutable du bundle (dans Content/MacOS).

- sachant que les bibliothèques partagés (autre que frameworks) sont
recherchées dans les chemins d'accès de DYLD_LIBRARY_PATH (cf man dyld),
il suffit peut-être d'ajouter le chemin d'accès de cette bibliothèque
dans cette variable. Pour que ce soit automatique, je proposerai de
remplacer le fichier exécutable (Content/MacOS/MonProgramme) par un
script shell :

#!/bin/sh
code_base=`dirname $0`
export DYLD_LIBRARY_PATH=$code_base
exec $code_base/MonProgramme_bis

en supposant que le fichier MonProgramme d'origine soit renommé en
MonProgramme_bis

- créer un framework avec cette bibliothèque en créant soit même tous
les dossiers afin d'obetenir la hiérarchie suivante :

SDL.framework
SDL.framework/Resources -> Versions/Current/Resources (lien symbolique)
SDL.framework/libsdl -> Versions/Current/libsdl
SDL.framework/Versions
SDL.framework/Versions/A
SDL.framework/Versions/A/Resources
SDL.framework/Versions/A/Resources/Info.plist (voir le contenu de
framework existant)
SDL.framework/Versions/A/Resources/version.plist (idem)
SDL.framework/Versions/A/libsdl
SDL.framework/Versions/Current -> A

et mettre se framework dans MonProgramme.app/Content/PrivateFrameworks/

- recompiler la bibliothèque à partir des sources avec xcode pour créer
un vrai framework.

--
Schmurtz

Carlo Noben
Le #5028
in article c22e3r$9sr$, Schmurtz at wrote
on 3/2/04 11:57 AM:

- créer un framework avec cette bibliothèque en créant soit même tous
les dossiers afin d'obetenir la hiérarchie suivante :

SDL.framework
SDL.framework/Resources -> Versions/Current/Resources (lien symbolique)
et mettre se framework dans MonProgramme.app/Content/PrivateFrameworks/

- recompiler la bibliothèque à partir des sources avec xcode pour créer
un vrai framework.




Merci pour tes suggestions, mais comme je n'y ai compris pas grand chose, je
vais d'abord essayer d'ajouter la librairie directement à l'exécutable... :)


C.

Publicité
Poster une réponse
Anonyme