Files
guru/sci-electronics/slang/slang-11.0-r1.ebuild
Huang Rui 77875fd7ca sci-electronics/slang: add 11.0-r1, drop 11.0
- Upstream gates catch2_min_version at 3.14 but Gentoo ships only 3.13.
- find_package fails, FetchContent_MakeAvailable git-clones Catch2 at
  build time and dies in network-sandbox (CF0014).
- Patch the floor to 3.13 so find_package matches dev-cpp/catch.

Closes: https://bugs.gentoo.org/975580
Signed-off-by: Huang Rui <vowstar@gmail.com>
2026-05-20 20:15:28 +08:00

78 lines
1.7 KiB
Bash

# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
PYTHON_COMPAT=( python3_{11..14} )
inherit cmake python-single-r1
DESCRIPTION="SystemVerilog compiler and language services"
HOMEPAGE="
https://sv-lang.com
https://github.com/MikePopoloski/slang
"
if [[ "${PV}" == "9999" ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/MikePopoloski/${PN}.git"
else
SRC_URI="https://github.com/MikePopoloski/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
S="${WORKDIR}/${P}"
fi
LICENSE="MIT"
SLOT="0"
IUSE="python test"
REQUIRED_USE=" ${PYTHON_REQUIRED_USE} "
RESTRICT="!test? ( test )"
RDEPEND="
${PYTHON_DEPS}
$(python_gen_cond_dep '
>=dev-python/pybind11-2.10[${PYTHON_USEDEP}]
')
>=dev-libs/libfmt-12.1:=
"
DEPEND="${RDEPEND}"
BDEPEND="
>=dev-libs/libfmt-12.1
test? ( >=dev-cpp/catch-3.13:0 )
"
PATCHES=(
# bug 975580
"${FILESDIR}/${PN}-11.0-catch2-3.13.patch"
)
src_prepare() {
cmake_src_prepare
}
src_configure() {
python_setup
local mycmakeargs=(
-D CMAKE_INSTALL_LIBDIR="${EPREFIX}/usr/$(get_libdir)"
-D BUILD_SHARED_LIBS=ON
-D SLANG_INCLUDE_PYLIB=$(usex python)
-D SLANG_INCLUDE_TESTS=$(usex test)
-D SLANG_USE_MIMALLOC=OFF
)
cmake_src_configure
}
src_install() {
cmake_src_install
if use python; then
# CMake installs pyslang files flat into /usr/; relocate them into
# a proper pyslang package directory under site-packages.
local pydir="${D}/$(python_get_sitedir)/pyslang"
mkdir -p "${pydir}" || die
mv "${D}"/usr/pyslang* "${pydir}" || die
mv "${D}"/usr/__init__.py "${pydir}" || die
mv "${D}"/usr/py.typed "${pydir}" || die
python_optimize "${D}/$(python_get_sitedir)"
fi
}