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_GITHUBUSE_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 将:

  1. extract 阶段将原始文件移到 cabal.project.${PORTNAME}

  2. 在补丁阶段之后, 将原始的 cabal.project.${PORTNAME} 和生成的 cabal.project 串联成一个文件。使用 append 可以在原始文件被合并之前对其进行修补。

最后更新于

FreeBSD 中文社区