Next: Python模块, Previous: Cyclic Module Dependencies, Up: 打包指导 [Contents][Index]
为统一化以及享受构建阶段的方便,比如自动生成 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
扩展标头,以及是否满足其中列出的任何依赖项及其版本。