5

Haskellの世界でautotoolsに代わるものは何ですか? 同じソース コードのさまざまな構成から選択できるようにしたいと考えています。

たとえば、Haskell には少なくとも 2 つの MD5 の実装があります:Data.Digest.OpenSSL.MD5Data.Digest.Pure.MD5. どのライブラリが既にインストールされているかを把握でき、他のライブラリをインストールする必要がないようにコードを書きたいと思います。

CI では Autotools/Scons/CMake + を使用できますcpp。Python では、 をキャッチできImportErrorます。Haskell ではどのツールを使用する必要がありますか?

4

2 に答える 2

14

Haskell では、Cabal 構成を使用します。.cabalプロジェクトの最上位ディレクトリに、拡張子<yourprojectname>.cabal. 内容は大まかに次のとおりです。

Name:                myfancypackage
Version:             0.0
Description:         myfancypackage
License:             BSD3
License-file:        LICENSE
Author:              John Doe
Maintainer:          john@example.com
Build-Type:          Simple
Cabal-Version:       >=1.4

Flag pure-haskell-md5
  Description: Choose the purely Haskell MD5 implementation
  Default: False

Executable haq
  Main-is:           Haq.hs
  Build-Depends:     base-4.*
  if flag(pure-haskell-md5)
    Build-Depends:   pureMD5-0.2.*
  else
    Build-Depends:   hopenssl-1.1.*

詳細については、Cabalのドキュメント、特にConfigurationsのセクションを参照してください。

于 2009-04-14T13:04:26.110 に答える