|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 86 ![]() |
J'aurais deux questions très liées :
Question 1: Cabal est un bon outil pour installer/distribuer ses packages, mais je voulais savoir, lors du développement d'un projet en Haskell, utilisez-vous cabal pour vos compilations répétées ou bien compilez-vous à la main avec ghc --make ? Question 2: Actuellement, je bosse sur le binding d'une librairie appelée SFML (plus précisément son binding C CSFML, si certains connaissent). Il s'agit d'une SDL-like (mais en mieux). Je progresse ainsi dans mon développement : j'ai un exécutable de test, que j'étoffe un peu à chaque fois que je rajoute quelques fonctionnalités à mon binding, de manière à les utiliser vite fait. Actuellement j'ai un script shell qui compile ma lib, et un autre mon exécutable, méthode que je trouve un peu crade au vu de l'existence de cabal. Auriez-vous une meilleure façon de procéder pratique pour le développement ? Via cabal-install ? Le truc est que si je compile la lib à coup de 'cabal build' mon exécutable ne peut pas la trouver quand je fais 'ghc --make testHSFML.hs', pourtant cabal m'indique bien à la fin du build: "Registering HSFML-1.5..." Je suis obligé de 'cabal install' ma lib, et je vais évidemment pas le faire à chaque modif dans le code. Je n'arrive également pas à rajouter mon exécutable au .cabal. J'ai l'erreur suivante au configure si j'indique HSFML dans ses dépendances : Citation:
Citation:
J'utilise le Build-Type 'Simple', c'est peut-être ça qui ne va pas, je ne sais pas. |
||
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 86 ![]() |
Bon, j'ai pu trouver une réponse (partielle ?) à ma question 2:
Dans mon .cabal, je ne mets que la librairie, pas mon main de test. Je 'cabal configure' une fois et 'cabal installe' à chaque modif du code de la lib. Ensuite, cabal génère dans un fichier dist/package.conf.inplace contenant les infos sur le package juste compilé (ça doit être à ça que correspond le 'Registering HSFML-1.5...'). Après, il faut indiquer l'existence de ce fichier à GHC lorsque je tente de compiler mon main : ghc --make -package-conf dist/package.conf.inplace main.hs Au passage, il ne faut pas exécuter ce code dans le dossier où se trouve le dossier racine du code du package (usuellement également le dossier où se trouve le .cabal), car sinon GHC va trouver le code et non la librairie déjà compilée via cabal, et va recompiler toute la librairie. C'est la seule façon pratique de faire que j'ai trouvée. Le truc est que je ne sais pas si je dois vraiment procéder comme ça (je n'ai rien vu sur le net disant de faire comme ça, par exemple). A part ça, je n'arrive toujours pas à avoir une lib et un exécutable en dépendant dans le même .cabal... |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com