簡體   English   中英

如何管理單個Haskell程序的多個配置?

[英]How can I manage multiple configurations of a single Haskell program?

在Haskell世界中,什么是autotools的替代品? 我希望能夠在相同源代碼的不同配置之間進行選擇。

例如,Haskell中至少有兩個MD5實現: Data.Digest.OpenSSL.MD5Data.Digest.Pure.MD5 我想以這樣的方式編寫代碼,它可以找出已安裝的庫,並且不需要安裝另一個庫。

在CI中可以使用Autotools / Scons / CMake + cpp 在Python中我可以捕獲ImportError 我應該在Haskell中使用哪些工具?

在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文檔有更多詳細信息,特別是有關配置的部分。

正如nominolo所說,Cabal是使用的工具。 特別是'配置'語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM