You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-python/setuptools_rust/setuptools_rust-0.12.1.ebuild

171 lines
3.4 KiB

# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
CARGO_OPTIONAL=yes
DISTUTILS_IN_SOURCE_BUILD=1
DISTUTILS_USE_SETUPTOOLS=rdepend
PYTHON_COMPAT=( python3_{7..10} )
inherit distutils-r1 cargo
CRATES="
bitflags-1.2.1
byteorder-1.3.4
cfg-if-0.1.10
cloudabi-0.1.0
cssparser-0.27.2
cssparser-macros-0.6.0
ctor-0.1.15
derive_more-0.99.10
dtoa-0.4.6
dtoa-short-0.3.2
futf-0.1.4
fxhash-0.2.1
getrandom-0.1.15
ghost-0.1.2
html5ever-0.25.1
indoc-0.3.6
indoc-impl-0.3.6
instant-0.1.6
inventory-0.1.9
inventory-impl-0.1.9
itoa-0.4.6
kuchiki-0.8.1
lazy_static-1.4.0
libc-0.2.77
lock_api-0.4.1
log-0.4.11
mac-0.1.1
markup5ever-0.10.0
matches-0.1.8
new_debug_unreachable-1.0.4
nodrop-0.1.14
parking_lot-0.11.0
parking_lot_core-0.8.0
paste-0.1.18
paste-impl-0.1.18
phf-0.8.0
phf_codegen-0.8.0
phf_generator-0.8.0
phf_macros-0.8.0
phf_shared-0.8.0
ppv-lite86-0.2.9
precomputed-hash-0.1.1
proc-macro-hack-0.5.18
proc-macro2-1.0.21
pyo3-0.12.1
pyo3-derive-backend-0.12.1
pyo3cls-0.12.1
quote-1.0.7
rand-0.7.3
rand_chacha-0.2.2
rand_core-0.5.1
rand_hc-0.2.0
rand_pcg-0.2.1
redox_syscall-0.1.57
ryu-1.0.5
scopeguard-1.1.0
selectors-0.22.0
serde-1.0.116
serde_derive-1.0.116
serde_json-1.0.57
servo_arc-0.1.1
siphasher-0.3.3
smallvec-1.4.2
stable_deref_trait-1.2.0
string_cache-0.8.0
string_cache_codegen-0.5.1
syn-1.0.41
tendril-0.4.1
thin-slice-0.1.1
unicode-xid-0.2.1
unindent-0.1.6
utf-8-0.7.5
wasi-0.9.0+wasi-snapshot-preview1
winapi-0.3.9
winapi-i686-pc-windows-gnu-0.4.0
winapi-x86_64-pc-windows-gnu-0.4.0
"
MY_PN="${PN/_/-}"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="a plugin for setuptools to build Rust Python extensions"
HOMEPAGE="https://github.com/PyO3/setuptools-rust"
SRC_URI="mirror://pypi/${PN::1}/${MY_PN}/${MY_P}.tar.gz
test? ( $(cargo_crate_uris ${CRATES}) )"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~ppc64"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
virtual/rust
dev-python/semantic_version[${PYTHON_USEDEP}]
dev-python/toml[${PYTHON_USEDEP}]
dev-python/typing-extensions[${PYTHON_USEDEP}]
"
BDEPEND="
dev-python/setuptools_scm[${PYTHON_USEDEP}]
test? (
${RDEPEND}
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
dev-python/lxml[${PYTHON_USEDEP}]
)
"
DEPEND="${RDEPEND}"
S="${WORKDIR}/${MY_P}"
src_unpack() {
cargo_src_unpack
}
python_test() {
# we really really want this test.
[[ ${PV} == 0.12.1 ]] || die "${FUNCNAME}: check if rust_with_cffi test can be enabled"
distutils_install_for_testing
# rust_with_cffi - needs a git version of pyo3 for this version
# but next version should be ok to enable rust_with_cffi test
# https://github.com/PyO3/setuptools-rust/commit/21fc0105dc7ba9b3bfdce1530a80190c01dff560#diff-a3f14f562689def4c1df269f3e37bafcf6036a58798d825b8a58438cb479600e
local examples=(html-py-ever tomlgen namespace_package)
for example_dir in ${examples[@]}; do
pushd examples/${example_dir} || die
einfo "Running ${example_dir} test"
case ${example_dir} in
tomlgen)
# tomlgen tests toml generation
esetup.py tomlgen_rust
;;
html-py-ever)
esetup.py build
pushd test || die
${EPYTHON} run_all.py || die "Tests failed with ${EPYTHON}"
popd || die
;;
*)
esetup.py build
epytest
;;
esac
popd || die
if [ ${example_dir} != "tomlgen" ]; then
# clean up the built example
rm -r build/lib/${example_dir//-/_} || die
fi
done
}