dev-embedded/libftdi: enable py3.12

Require >=dev-lang/swig-4.2.0 because that's where they added support
for Python 3.12 in swig.  In this case this is not strictly required,
because swig-4.1.1 generates the same files, so the requirement can
be relaxed if needed.

Closes: https://bugs.gentoo.org/929394
Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>
This commit is contained in:
Viorel Munteanu
2024-04-20 22:36:33 +03:00
parent 291452cf5a
commit 64a76907fb
3 changed files with 182 additions and 2 deletions

View File

@@ -0,0 +1,90 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
inherit cmake python-single-r1
if [[ ${PV} == 9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="git://developer.intra2net.com/${PN}"
else
SRC_URI="https://www.intra2net.com/en/developer/${PN}/download/${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
DESCRIPTION="Userspace access to FTDI USB interface chips"
HOMEPAGE="https://www.intra2net.com/en/developer/libftdi/"
LICENSE="LGPL-2"
SLOT="0"
IUSE="cxx doc examples python static-libs"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
virtual/libusb:0
cxx? ( dev-libs/boost )
doc? ( !dev-embedded/libftdi:1[doc] )
python? ( ${PYTHON_DEPS} )
"
DEPEND="${RDEPEND}"
BDEPEND="
doc? ( app-text/doxygen )
python? ( >=dev-lang/swig-4.2.0 )
"
PATCHES=(
"${FILESDIR}"/${P}-cmake-include.patch
"${FILESDIR}"/${P}-cmake-version.patch
)
pkg_setup() {
use python && python-single-r1_pkg_setup
}
src_prepare() {
if use python; then
sed -i \
-e "s:[$]{PYTHON_LIB_INSTALL}/../site-packages:$(python_get_sitedir):" \
bindings/CMakeLists.txt || die
fi
sed -i \
-e '/SET(LIB_SUFFIX /d' \
CMakeLists.txt || die
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
-DFTDIPP=$(usex cxx)
-DDOCUMENTATION=$(usex doc)
-DEXAMPLES=$(usex examples)
-DPYTHON_BINDINGS=$(usex python)
-DCMAKE_SKIP_BUILD_RPATH=ON
)
cmake_src_configure
}
src_install() {
cmake_src_install
use python && python_optimize
dodoc ChangeLog README
if use doc ; then
# Clean up man pages with too generic names. #356369
rm -vf "${BUILD_DIR}"/doc/man/man3/{_,usb_,deprecated}* || die
doman "${BUILD_DIR}"/doc/man/man3/*
dodoc -r "${BUILD_DIR}"/doc/html
fi
if use examples ; then
docinto examples
dodoc examples/*.c
fi
use static-libs || rm "${ED}"/usr/$(get_libdir)/${PN}.a || die
}

View File

@@ -0,0 +1,90 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
inherit cmake python-single-r1
MY_P="${PN}1-${PV}"
if [[ ${PV} == 9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="git://developer.intra2net.com/${PN}"
else
SRC_URI="https://www.intra2net.com/en/developer/${PN}/download/${MY_P}.tar.bz2"
S="${WORKDIR}/${MY_P}"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
PATCHES=(
"${FILESDIR}"/${P}-tests-no-cxx.patch
"${FILESDIR}"/${P}-cmake-cxx.patch
)
fi
DESCRIPTION="Userspace access to FTDI USB interface chips"
HOMEPAGE="https://www.intra2net.com/en/developer/libftdi/"
LICENSE="LGPL-2"
SLOT="1"
IUSE="cxx doc examples python test tools"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
virtual/libusb:1
cxx? ( dev-libs/boost )
doc? ( !dev-embedded/libftdi:0[doc] )
python? ( ${PYTHON_DEPS} )
tools? ( dev-libs/confuse:= )
"
DEPEND="${RDEPEND}
test? ( dev-libs/boost )
"
BDEPEND="
doc? ( app-text/doxygen )
python? ( >=dev-lang/swig-4.2.0 )
"
pkg_setup() {
use python && python-single-r1_pkg_setup
}
src_configure() {
local mycmakeargs=(
-DFTDIPP=$(usex cxx)
-DDOCUMENTATION=$(usex doc)
-DEXAMPLES=$(usex examples)
-DPYTHON_BINDINGS=$(usex python)
-DBUILD_TESTS=$(usex test)
-DFTDI_EEPROM=$(usex tools)
-DCMAKE_SKIP_BUILD_RPATH=ON
-DSTATICLIBS=OFF
)
cmake_src_configure
}
src_test() {
cd "${BUILD_DIR}/test" || die
LD_LIBRARY_PATH="${BUILD_DIR}/src" ./test_libftdi1 -l all || die
}
src_install() {
cmake_src_install
use python && python_optimize
dodoc AUTHORS ChangeLog README TODO
if use doc ; then
# Clean up man pages with too generic names. #356369
rm -vf "${BUILD_DIR}"/doc/man/man3/_* || die
doman "${BUILD_DIR}"/doc/man/man3/*
dodoc -r "${BUILD_DIR}"/doc/html
fi
if use examples ; then
docinto examples
dodoc examples/*.c
fi
}

View File

@@ -3,7 +3,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{10..11} )
PYTHON_COMPAT=( python3_{10..12} )
inherit cmake python-single-r1
MY_P="${PN}1-${PV}"
@@ -42,7 +42,7 @@ DEPEND="${RDEPEND}
"
BDEPEND="
doc? ( app-text/doxygen )
python? ( dev-lang/swig )
python? ( >=dev-lang/swig-4.2.0 )
"
pkg_setup() {