是否可以使用Cabal构建Haskell项目并从环境变量控制GHC标志?
在我的project.cabal文件中有一个“GHC-Options”部分,它控制着标志,但我很乐意从命令行中另外设置它们。
答案 0 :(得分:1)
如果您只有开/关标志,则应使用Cabal flags。
答案 1 :(得分:0)
在阴谋文件的顶层使用build-type: Configure
。
编写一个configure
脚本(即,位于程序包顶层的名为“ configure”的shell脚本-不必是自动工具样式)。它应该读取环境变量,并生成一个名为 package .buildinfo的文件,并适当替换“ package ”。
该文件的格式理论上在Cabal用户指南中描述。该文件应仅包含Cabal用户指南第3.3.2.9节中所述的构建信息字段。即build-depends
,other-modules
,hs-source-dirs
,default-extensions
,other-extensions
,extensions
,build-tool-depends
,build-tools
,buildable
,ghc-options
,ghc-prof-options
,ghc-shared-options
,includes
,install-includes
,include-dirs
,c-sources
,{ {1}},cxx-sources
,asm-sources
,cmm-sources
,js-sources
,extra-libraries
,extra-ghci-libraries
,extra-bundled-libraries
,{{1 }},extra-lib-dirs
,cc-options
,cpp-options
,cxx-options
,ld-options
,pkgconfig-depends
和frameworks
字段中缩进部分。它们不必缩进。这些将与cabal文件的extra-frameworks-dirs
部分中的等效字段合并。 (《用户指南》介绍了可以包含mixins
个部分的功能,但我现在无法使其正常工作。)
因此,如果您希望代码中的字符串反映library
的内容,请设置cabal文件并编写如下配置脚本:
executable
然后您可以编写一个.hs文件
$PATH
Cabal用户指南:https://www.haskell.org/cabal/users-guide/developing-packages.html