2017-02-19 3 views
1

La plus grande image est que je suis en train d'utiliser le package sdl2 de Stackage (LTS 8.1). Cependant, j'ai un peu de problème. Le paquet manque un drapeau du compilateur, comme détaillé dans this issue on GitHub. En tant que tel, il ne construit pas correctement.Comment puis-je utiliser ma propre version d'un paquet avec une pile?

Cependant, si je clone le référentiel, je peux d'ajouter le drapeau du compilateur manquant dans le fichier .cabal et de construire moi-même, ce qui résout le problème. J'ai maintenant une version fonctionnelle du paquet. Donc, ma question est: Comment puis-je, dans un projet distinct, utiliser ma propre version de travail du paquet sdl2, au lieu de celle de Stackage?

Répondre

4

Il y a quelques façons de le faire avec la pile. Celui que j'aime le plus, et qui sonne comme un bon ajustement pour votre scénario, est en train de charger le dépôt avec votre fourche à GitHub (ou partout où vous trouverez approprié), puis en ajoutant une référence au dépôt en ligne comme un extra-dep au packages section de stack.yaml. Par souci d'illustration, voici la section packages pour un de mes projets dans lequel je devais le faire:

packages: 
- '.' 
- location: 
    git: https://github.com/duplode/threepenny-gui 
    commit: 7e4e3a41cbb5e55312d4375612790d633ccf1e7a 
    extra-dep: true