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


索引

名称
描述
支持的 EAPIS
示例
函数
ECLASS 变量
维护者
报告 Bug
文件
参见

此文档由 man2html 使用手册页创建。
时间: 2024年11月12日 格林威治标准时间03:27:01