Next: , Previous: , Up: 打包指导   [Contents][Index]


22.8.7 Emacs 包

为统一化以及享受构建阶段的方便,比如自动生成 autoloads 文件、字节编译源文件,Emacs 包应该选择 Emacs 构建系统(see emacs-build-system)。由于没有标准化的方法运行Emacs包的测试用例,测试默认是禁用的。当一个测试用例可用时,可以通过设置 #:tests? 参数为 #true 启用。默认条件下,运行测试的命令是 make check,不过其它的命令也可以用 #:test-command 参数指定。参数 #:test-command 应当由包含命令和命令参数的列表,并在 check 阶段调用。

Emacs包的Elisp依赖项通常在运行时需要时作为 propagated-inputs 提供。 对于其他包,构建或测试依赖项应指定为native-inputs

Emacs包有时依赖于应与Elisp文件一并安装的资源目录。 #:include 参数可用于此目的,方法是指定要匹配的正则表达式列表。 使用 #:include 参数时的最佳实践是扩展而不是覆盖它的默认值(可通过%default-include 变量访问)。 例如,yasnippet 扩展包通常包含一个 snippets 目录,可以使用以下命令将其复制到安装目录:

#:include (cons "^snippets/" %default-include)

当遇到问题时,明智的做法是检查包主要源文件中是否存在 Package-Requires 扩展标头,以及是否满足其中列出的任何依赖项及其版本。