mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
app-shells/fish: make build work with cmake
This will now use cmake to build fish itself. This makes it possible to run tests (yay!). And we don't need to maintain downstream patches for cargo.eclass compatibility. Closes: https://bugs.gentoo.org/952080 Closes: https://bugs.gentoo.org/970077 Signed-off-by: idealseal <realidealseal@protonmail.com> Part-of: https://codeberg.org/gentoo/gentoo/pulls/196 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
141
app-shells/fish/fish-4.5.0-r2.ebuild
Normal file
141
app-shells/fish/fish-4.5.0-r2.ebuild
Normal file
@@ -0,0 +1,141 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
CRATES=""
|
||||
|
||||
if [[ ${PV} != 9999 ]]; then
|
||||
declare -A GIT_CRATES=(
|
||||
[pcre2-sys]='https://github.com/fish-shell/rust-pcre2;85b7afba1a9d9bd445779800e5bcafeb732e4421;rust-pcre2-%commit%/pcre2-sys'
|
||||
[pcre2]='https://github.com/fish-shell/rust-pcre2;85b7afba1a9d9bd445779800e5bcafeb732e4421;rust-pcre2-%commit%'
|
||||
)
|
||||
fi
|
||||
|
||||
RUST_MIN_VER="1.85.0"
|
||||
|
||||
PYTHON_COMPAT=( python3_{11..14} )
|
||||
|
||||
inherit cargo cmake python-any-r1 readme.gentoo-r1 xdg
|
||||
|
||||
DESCRIPTION="Friendly Interactive SHell"
|
||||
HOMEPAGE="https://fishshell.com/"
|
||||
|
||||
MY_PV="${PV/_beta/b}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/fish-shell/fish-shell.git"
|
||||
else
|
||||
SRC_URI="
|
||||
https://github.com/fish-shell/fish-shell/releases/download/${MY_PV}/${MY_P}.tar.xz
|
||||
https://github.com/gentoo-crate-dist/fish-shell/releases/download/${MY_PV}/fish-shell-${MY_PV}-crates.tar.xz
|
||||
${CARGO_CRATE_URIS}
|
||||
"
|
||||
KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x64-macos"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="GPL-2 BSD BSD-2 CC0-1.0 GPL-2+ ISC LGPL-2+ MIT PSF-2 ZLIB"
|
||||
# Dependent crate licenses
|
||||
LICENSE+=" Apache-2.0 MIT MPL-2.0 Unicode-3.0 ZLIB"
|
||||
SLOT="0"
|
||||
IUSE="+doc nls test"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
${PYTHON_USEDEP}
|
||||
doc? ( $(python_gen_any_dep 'dev-python/sphinx[${PYTHON_USEDEP}]') )
|
||||
nls? ( sys-devel/gettext )
|
||||
test? (
|
||||
app-misc/tmux
|
||||
dev-vcs/git
|
||||
sys-apps/less
|
||||
$(python_gen_any_dep 'dev-python/pexpect[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
DEPEND="dev-libs/libpcre2[pcre32]"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
QA_FLAGS_IGNORED="usr/bin/.*"
|
||||
|
||||
python_check_deps() {
|
||||
if use doc; then
|
||||
python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" || return 1
|
||||
fi
|
||||
if use test; then
|
||||
python_has_version "dev-python/pexpect[${PYTHON_USEDEP}]" || return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if use doc || use test; then
|
||||
python-any-r1_pkg_setup
|
||||
fi
|
||||
rust_pkg_setup
|
||||
|
||||
export PKG_CONFIG_ALLOW_CROSS=1
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Bug: https://bugs.gentoo.org/952080
|
||||
sed -e '/^lto = /d' -i Cargo.toml || die "Failed to remove LTO from cargo package"
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
git-r3_src_unpack
|
||||
cargo_live_src_unpack
|
||||
else
|
||||
cargo_src_unpack
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
|
||||
-DCMAKE_INSTALL_DATADIR="${EPREFIX}/usr/share"
|
||||
-DWITH_DOCS="$(usex doc ON OFF)"
|
||||
-DWITH_MESSAGE_LOCALIZATION="$(usex nls ON OFF)"
|
||||
-DRust_CARGO="${CARGO}"
|
||||
-DRust_COMPILER="${RUSTC}"
|
||||
)
|
||||
local -x CMAKE_BUILD_TYPE="$(usex debug Debug Release)"
|
||||
cargo_env cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local -x CARGO_TERM_COLOR=always
|
||||
cargo_env cmake_src_compile
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Very fragile tests, don't seem to work in sandboxed environment.
|
||||
# No die to allow repeating tests.
|
||||
rm -v \
|
||||
tests/checks/tmux-pager.fish \
|
||||
tests/checks/tmux-wrapping.fish \
|
||||
tests/checks/tmux-commandline.fish \
|
||||
tests/checks/tmux-prompt.fish \
|
||||
tests/pexpects/terminal.py \
|
||||
|| :
|
||||
|
||||
cargo_env cmake_build fish_run_tests
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cargo_env cmake_src_install
|
||||
keepdir /usr/share/fish/vendor_{completions,conf,functions}.d
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
readme.gentoo_print_elog
|
||||
xdg_pkg_postinst
|
||||
}
|
||||
Reference in New Issue
Block a user