17.8.cabal
重要
不应该为 Haskell 库创建 port ,更多信息见 Haskell 库。
可能的参数。(无), hpack
, nodefault
设置用于使用 Cabal 构建 Haskell 软件的默认值和目标。添加了对 Haskell 编译器 port (lang/ghc)的构建依赖。如果 BUILD_DEPENDS
变量中已经列出了其他版本的 GHC(例如,lang/ghc810),则将使用它。如果给出了 hpack
参数,则会添加对 devel/hs-hpack 的构建依赖,并在配置步骤中调用 hpack
来生成 .cabal 文件。如果给了 nodefault
参数,框架将不会尝试从 Hackage 中解压主发行文件。如果 USE_GITHUB
或 USE_GITLAB
存在,则隐式添加此参数。
该框架提供了下列变量:
CABAL_REVISION
托管在 Hackage 上的 Haskell 包可能有修订版。把这个旋钮设置为一个整数,以拉入修订后的软件包描述。
USE_CABAL
如果软件使用了 Haskell 的依赖性,请在这个变量中列出它们。每个项目都应该在 Hackage 上存在,并以 packagename-0.1.2
的形式列出。依赖项也可以有修订版,在 _ 符号后面指定。支持自动生成依赖列表,参见用 cabal 构建 Haskell 应用程序。
CABAL_FLAGS
在配置和构建阶段要传递给 cabal-install
的标志列表。这些标志是逐字传递的。这个变量通常用于启用或禁用 .cabal 文件中声明的标志。传递 foo
来启用 foo
标志,传递 -foo
来禁用它。
CABAL_EXECUTABLES
由 port 安装的可执行文件的列表。默认值: ${PORTNAME}
。请查阅被移植项目的 .cabal 文件, 以获得这个变量的可能值的列表。每个值都对应于 .cabal 文件中的一个 executable
文件段。这个列表中的项目会自动添加到 pkg-plist 中。
SKIP_CABAL_PLIST
如果定义了这个变量, 则不会将 ${CABAL_EXECUTABLES}
中的项目加入 pkg-plist。
opt_USE_CABAL
根据 opt
选项, 将项目添加到 ${USE_CABAL}
。
opt_CABAL_EXECUTABLES
根据 opt
选项, 将项目添加到 ${CABAL_EXECUTABLES}
中。
opt_CABAL_FLAGS
如果启用了 opt
,则将该值追加到 ${CABAL_FLAGS}
。否则,添加 -value
以禁用该标志。请注意,这一行为与普通的 CABAL_FLAGS
略有不同,因为它不接受以 -
开头的值。
CABAL_WRAPPER_SCRIPTS
包含 Haskell 程序的 ${CABAL_EXECUTABLES}
子集,将被包装成一个 shell 脚本,在运行程序前设置 *_datadir
环境变量。这也导致实际的 Haskell 二进制文件被安装在 libexec/cabal/
目录下。这个旋钮对于将数据文件安装在 share/
目录下的 Haskell 程序是需要的。
FOO_DATADIR_VARS
额外的 Haskell 包的列表,其数据文件应该可以被名为 FOO
的可执行程序访问。该可执行文件应该是 ${CABAL_WRAPPER_SCRIPTS}
的一部分。这里列出的 Haskell 包不应该有版本后缀。
CABAL_PROJECT
一些 Haskell 项目可能已经有了 cabal.project
文件,它也会由 ports 框架生成。如果是这种情况,可以使用这个变量来指定如何处理原始的 cabal.project
。将此变量设置为 remove
将导致原始文件被删除。将此变量设置为 append
将:
在
extract
阶段将原始文件移到cabal.project.${PORTNAME}
。在补丁阶段之后, 将原始的
cabal.project.${PORTNAME}
和生成的cabal.project
串联成一个文件。使用append
可以在原始文件被合并之前对其进行修补。
最后更新于