GUILE-SINGLE.ECLASS

章节: eclass-manpages (5)
更新: 2024 年 11 月
索引 返回主内容

名称

guile-single.eclass - 用于针对单个 Guile 构建的软件包的实用程序。

描述

此 eclass 帮助软件包针对单个 Guile 版本构建,通常是使用 Guile 进行扩展的软件包,例如 GNU Make,或者用 Guile 编写的程序,例如 Haunt。

受 Gentoo Python 生态系统中先前工作的影响。

这些软件包应使用 guile_gen_cond_dep 生成其 Guile 软件包依赖项的依赖项字符串(即其他 Guile 单实现和多实现软件包)。它们还应利用 GUILE_DEPS 和 GUILE_REQUIRED_USE 指定对其 Guile 版本的依赖项。

它们还应该在 src_prepare 期间通过 guile_bump_sources 升级源代码,并在 src_install 期间通过 guile_unstrip_ccache 取消 ccache 的剥离。

如果 eclass 的用户需要 Guile 本身的一些 USE 标记,则应通过 GUILE_REQ_USE 提供。

此 eclass 提供了 guile-single_pkg_setup,它设置了 Guile 和使用它的构建系统所需的环境变量。有关更多详细信息,请参阅该函数的文档。

支持的 EAPIS

8

传递提供的 ECLASSES

guile-utils

示例

一个 Guile 程序

# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

GUILE_COMPAT=( 2-2 3-0 )
inherit guile-single

DESCRIPTION="Haunt is a simple, functional, hackable static site generator"
HOMEPAGE="https://dthompson.us/projects/haunt.html"
SRC_URI="https://files.dthompson.us/releases/${PN}/${P}.tar.gz"

LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64"
REQUIRED_USE="${GUILE_REQUIRED_USE}"

RDEPEND="
        ${GUILE_DEPS}
        $(guile_gen_cond_dep '
                dev-scheme/guile-reader[${GUILE_MULTI_USEDEP}]
                dev-scheme/guile-commonmark[${GUILE_MULTI_USEDEP}]
        ')
"
DEPEND="${RDEPEND}"

一个利用 Guile 进行扩展的程序(GNU make,省略了无关的部分)

GUILE_COMPAT=( 1-8 2-0 2-2 3-0 )
inherit flag-o-matic unpacker verify-sig guile-single
# ...
REQUIRED_USE="guile? ( ${GUILE_REQUIRED_USE} )"
DEPEND="
        guile? ( ${GUILE_DEPS} )
"

src_prepare() {
        # ...
        if use guile; then
                guile-single_src_prepare
        fi
}

pkg_setup() {
        if use guile; then
                guile-single_pkg_setup
        fi
}

src_configure() {
        # ...
        local myeconfargs=(
                $(use_with guile)
        )
        econf "${myeconfargs[@]}"
}

src_install() {
        # ...
        if use guile; then
                guile_unstrip_ccache
        fi
}

函数

guile_gen_cond_dep <dependency> [<pattern>...]
采用一个字符串,该字符串使用 (quoted) ${GUILE_SINGLE_USEDEP} 和 ${GUILE_MULTI_USEDEP} 标记作为每个兼容插槽的正确 USE 依赖项字符串的占位符。

如果提供了模式,则将其视为要为其生成依赖项字符串的插槽列表,否则,将采用 ${GUILE_COMPAT[@]}。

guile-single_pkg_setup
使用适当的 GUILE_SINGLE_TARGET 设置 PKG_CONFIG_PATH,并设置 guile-config 以及 GUILE、GUILD 和 GUILESNARF 环境变量。还将 GUILE_EFFECTIVE_VERSION 设置为与 GUILE_SELECTED_TARGET 相同的值,因为构建系统有时会检查该变量。

有关后三者的详细信息,请参阅 guile_export。

guile-single_src_prepare
运行默认的准备阶段,然后通过 guile_bump_sources 升级 Guile 源代码。
guile-single_src_install
运行默认的安装阶段,然后使用 guile_unstrip_ccache 标记 ccache 文件不应被剥离。

ECLASS 变量

GUILE_COMPAT (必需) (在继承之前设置)
可接受的 Guile 版本列表。例如,像下面这样设置此变量将允许软件包针对 Guile 2.2 或 3.0 构建

GUILE_COMPAT=( 2-2 3-0 )

请保持升序排列。

作者

作者: Arsen Arsenović <[email protected]>

维护者

Gentoo Scheme 项目 <[email protected]>

报告 Bug

请通过 https://bugs.gentoo.org/ 报告 Bug。

文件

guile-single.eclass

另请参阅

ebuild(5)
https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/guile-single.eclass


索引

名称
描述
支持的 EAPIS
传递提供的 ECLASSES
示例
函数
ECLASS 变量
作者
维护者
报告 Bug
文件
另请参阅

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