SCONS-UTILS.ECLASS
章节: eclass-manpages (5)更新: 2024年11月
索引 返回主目录
名称
scons-utils.eclass - 用于处理 SCons 构建系统的辅助函数描述
此 eclass 提供了一组函数,帮助开发人员以合理的方式调用 dev-build/scons 并向其传递参数。从 dev-build/scons-3.0.1-r100 开始,SCons 支持 Python 3。由于构建系统中的 SCons* 文件是用 Python 编写的,因此所有软件包都需要明确验证支持哪些版本的 Python,并使用适当的 Python 套件 eclass 来选择实现。此 eclass 需要在 scons-utils 之前继承,scons-utils 将自动利用它。有关更多详细信息,请参见:https://projects.gentoo.org/python/guide/buildsys.html#scons
请注意,SCons 更像是一个“构建系统创建工具包”,需要大量上游自定义才能合理使用。我们尝试通过自定义补丁来强制执行合理的行为,但这不能保证有效。有时您需要请求上游修复和/或修补构建系统。特别是,通常
1. 没有“标准”变量。为了尊重 CC、CXX、CFLAGS、CXXFLAGS、CPPFLAGS、LDFLAGS,上游需要明确定义相应的变量。在某些情况下,上游会尊重环境变量,在其他情况下,您需要将它们作为选项传递。
2. SCons 默认会清除环境,并将其替换为一些预定义的值。为了尊重 PATH 等环境变量,上游需要显式地从 os.environ 获取它们并将它们复制到构建环境中。
支持的 EAPIS
7 8示例
PYTHON_COMPAT=( python3_{8..11} ) inherit python-any-r1 scons-utils toolchain-funcs EAPI=8 src_configure() { MYSCONS=( CC="$(tc-getCC)" ENABLE_NLS=$(usex nls) ) } src_compile() { escons "${MYSCONS[@]}" } src_install() { # note: this can be DESTDIR, INSTALL_ROOT, ... depending on package escons "${MYSCONS[@]}" DESTDIR="${D}" install }
函数
- escons [<args>...]
- 调用 scons,传递提供的参数。与 emake 一样,此函数在失败时会退出,除非使用了 nonfatal。
ECLASS 变量
- SCONS_MIN_VERSION ?= 4.4.0
- 构建工作所需的 SCons 最小版本。
- SCONSOPTS (用户变量)
- 传递给 scons 的默认选项集。类似于 MAKEOPTS,应该在 make.conf 中设置。如果未设置,escons() 将根据 MAKEOPTS 设置 -j。
- EXTRA_ESCONS (用户变量)
- 每次使用 escons() 时传递给 SCons 的附加参数。与 EXTRA_EMAKE 非常相似,这应该不在 make.conf 中使用,也不在 ebuild 中使用!
维护者
[email protected]报告 Bug
请通过 https://bugs.gentoo.org/ 报告 Bug文件
scons-utils.eclass参见
ebuild(5)https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/scons-utils.eclass
索引
此文档由 man2html 使用手册页创建。
时间: 2024年11月12日 格林威治标准时间03:27:01