Forum Programmation.autre [Ada] Créer un projet pour Linux

Posté par  (site web personnel) .
Étiquettes :
0
31
mar.
2007
Lorsqu'on fait un petit logiciel, c'est simple, il suffit de coder avec la fameuse méthode "à l'arrache"...
Mais là j'ai voulu faire un package d'un soft que des amis développent et qui vient d'être porté sous Linux.

Ce logiciel utilise GtkAda et Glade et j'ai déjà réussi à faire un Makefile... (et pas de problème non plus pour le .deb)

Le truc c'est qu'actuellement, le logiciel cherche le fichier glade dans le répertoire courant... Alors qu'il devrai aller le chercher dans /usr/share.


Donc que me conseillez vous pour modifier ce projet proprement. Est-ce qu'il y a des variables ou fonctions qui retournent le chemin où lire ce fichier ? Ou est-ce qu'il faut que je fasse des ifdef ou quelque chose du genre pour aller chercher dans des dossiers différents selon l'OS ?

J'ai aussi le même problème avec le répertoire utilisateur.
Lorsque je code en C j'utilise : g_get_home_dir() mais en Ada je ne sais pas comment il faut faire.
  • # Ada.Environment_Variables

    Posté par  (site web personnel) . Évalué à 1.

    Pour le get_home_dir : voir le package Ada.Environment_Variables

    et notamment la fonction Value et Exists

    Glade je ne connais pas.
  • # Autotools

    Posté par  . Évalué à 2.

    Je ne suis pas un guru des autotools, mais tout le processus de faire un package "proprement" est géré par cet ensemble d'outils (autoconf, automake, etc ...). En C, généralement, l'outil te fait des #define comme il faut indiquant où se trouvent tes fichiers de données par exemple. Pour le fichier glade, tu ferais un truc du genre :
    charge_moi_le_fichier_glade(CHEMIN_VERS_DONNEES "monfichier.glade");
    Après, en Ada, je ne sais pas trop, mais va voir dans leur doc, il y a peut-être plus d'infos.
    • [^] # Re: Autotools

      Posté par  (site web personnel) . Évalué à 1.

      C'est effectivement un problème avec ADA que j'ai.

      J'ai pu faire des packages tout propre mais après, l'appli ne cherche pas le fichier au bon endroit... Du coup là j'ai trouvé une solution pour les fichiers dans /usr/local/share

      Par contre je n'ai tjs pas trouvé la solution pour le dossier home. Sachant que la solution proposée plus haut est de l'ada 2005 et que le projet est en ada 95. (en plus du fait que j'arrive pas à m'en servir mais je suis débutant en Ada, c'est pas moi qui code le logiciel...)
      • [^] # Re: Autotools

        Posté par  . Évalué à 2.

        À mon avis il doit bien exister qqpart un équivalent à getenv(), pour récupérer la variable $HOME.
        • [^] # Re: Autotools

          Posté par  (site web personnel) . Évalué à 2.

          ah... peut-être : function Getenv (Name : String) return String_Access; dans le package GNAT.OS_Lib

          A tester...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.