2017-04-23 1 views
1

J'ai écrit un programme Haskell; Je préfère que les gens n'aient pas besoin d'avoir Haskell pour l'exécuter, donc je veux envoyer un binaire pour les plates-formes communes (OSX, Linux).Créer des binaires pour Linux et Mac via CI

Je sais que sur mon ordinateur je peux stack build ou cabal build sur CircleCI pour générer un binaire; mais par défaut, cela ne génère qu'un binaire pour le système d'exploitation du conteneur. Comment puis-je construire un binaire pour OSX et Linux sur CircleCI (ou Travis si nécessaire)?

Merci!

+0

« fait cette course binaire sur d'autres plates-formes ou ai-je besoin de construire un binaire pour les plates-formes indépendamment? » - oui, bien sûr, vous devez compiler les fichiers ** binaires ** (qu'est-ce qu'un tel fichier contient?). Pour obtenir un compilateur croisé GHC, vous devez [le construire vous-même] (https://ghc.haskell.org/trac/ghc/wiki/CrossCompilation). Dans cet esprit (construire GHC vous-même), obtenir 'cabal' ou' stack' pour utiliser cette construction est trivial en comparaison. (A part: si vous voulez un programme qui fonctionne comme "golang using ghr", vous devriez expliquer ce que c'est, au lieu de forcer les lecteurs de cette question à apprendre 'go') – user2407038

+0

@ user2407038 hrmm, merci! Qui aide; J'ai édité la question. Je pense que je pourrais éviter la compilation croisée en exécutant deux versions via Travis (une sur OSX, une sur Linux). –

Répondre

1

Géré pour le faire fonctionner pour mon projet Tempered. Vous pouvez consulter le fichier .travis.yml pour voir comment c'est fait; ou consultez le blog que j'ai écrit sur la façon d'expédier des binaires via homebrew (il couvre également la construction pour Linux).

http://chrispenner.ca/post/homebrew-haskell