2015-02-25 6 views
8

Ich habe mein eigenes Cabal-Paket (nenne es Paket-1) mit zwei Zielen, einer Bibliothek und einer ausführbaren Datei. Der Bibliotheksabschnitt verfügt über eine Build-Abhängigkeitsliste, und die ausführbare Datei hat eine andere Build-Depends-Liste, die viel größer ist.Wenn du auf ein Cabal-Paket angewiesen bist, scheint es Abhängigkeiten in allen Kabalen zu zeichnen.

Jetzt erstelle ich Paket-2, das Paket-1 in seinem Build-abhängigen Abschnitt auflistet. Ich möchte nur die Abhängigkeiten einbringen, die in der Bibliothek Ziel von Paket-1 aufgeführt sind. Aber es scheint alle die Abhängigkeiten in allen Abschnitten von Paket-1 aufgeführt, einschließlich der Abhängigkeiten für das ausführbare Ziel zu bringen.

Gibt es eine Möglichkeit, das Abhängigkeitsdiagramm nur auf die Bibliothek in Paket-1 zu reduzieren, oder muss ich das Bibliothekziel in ein separates eigenständiges Paket ausbrechen?

+0

Dies ist eine bekannte und seit langem bestehende Problem, eine Frage auf SO gefragt wurde (es ist ein dupe) und einige Abhilfen existieren. –

+1

@BartekBanachewicz Ich habe diese Frage schon einmal gesehen: http://stackoverflow.com/questions/10163604/how-to-reduce-duplication-in-the-build-depends-fields-of-a-cabal-file?rq = 1, auf die du dich beziehst, aber meine Frage ist anders. – dan

Antwort

3

können Sie Buildable: False setzen, ausführbar gemacht und es dann explizit bauen, wenn sie mit cabal build Foo oder über Flag (cabal configure -fbuild-foo oder -fbuild-executables) benötigt.

Beispiel die hilfreich sein könnten: Cabal Multiple Executables