# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 PYTHON_COMPAT=( python3_{12..15} ) inherit cmake flag-o-matic python-any-r1 DESCRIPTION="Program and library for generating standard and non-standard InChI and InChIKeys" HOMEPAGE="https://www.iupac.org/inchi/" SRC_URI="https://github.com/IUPAC-InChI/InChI/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/InChI-${PV}" LICENSE="IUPAC-InChi" SLOT="0" KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" IUSE="test" RESTRICT="!test? ( test )" DEPEND="test? ( dev-cpp/gtest )" BDEPEND=" test? ( ${PYTHON_DEPS} $(python_gen_any_dep ' dev-python/pytest[${PYTHON_USEDEP}] ') ) " PATCHES=( "${FILESDIR}"/${PN}-1.07.5-flags.patch "${FILESDIR}"/${PN}-1.07.5-unbundle_gtest.patch ) python_check_deps() { python_has_version -b "dev-python/pytest[${PYTHON_USEDEP}]" } pkg_setup() { use test && python-any-r1_pkg_setup } src_prepare() { cmake_src_prepare if use test; then sed -e '/INCHI_LIB_PATH = (/,/)/s|"[^"]*"|"'"${BUILD_DIR}"'/INCHI-1-SRC/INCHI_API/libinchi/src/lib/libinchi.so"|' \ -i INCHI-1-TEST/tests/test_library/test_multithreading.py || die else cmake_comment_add_subdirectory INCHI-1-TEST/tests/test_unit fi } src_configure() { # gtest-1.17 requires at least C++17 use test && append-cxxflags -std=gnu++17 cmake_src_configure } src_test() { BUILD_DIR="${BUILD_DIR}/INCHI-1-TEST/tests/test_unit/" cmake_src_test local -x PYTHONPATH="${S}/INCHI-1-TEST/src" EPYTEST_IGNORE=( INCHI-1-TEST/tests/test_meta/test_performance.py # timeout INCHI-1-TEST/tests/test_meta/test_permutation.py # missing rdkit INCHI-1-TEST/tests/test_meta/test_drivers.py # needs pydantic ) epytest . INCHI-1-TEST/tests/test_executable --exe-path="${BUILD_DIR}"/INCHI-1-SRC/INCHI_EXE/inchi-1/src/bin/inchi-1 "${EPYTHON}" INCHI-1-TEST/tests/test_library/test_multithreading.py 1>/dev/null # this test is very verbose if [[ $? -eq 0 ]]; then einfo "test_library/test_multithreading.py PASSED" else die "test_library/test_multithreading.py FAILED" fi } src_install() { # no INSTALL in cmake files dodoc INCHI-1-SRC/readme.txt INCHI-1-DOC/{readme.txt,*.pdf} dobin "${BUILD_DIR}"/INCHI-1-SRC/INCHI_EXE/inchi-1/src/bin/inchi-1 dolib.so "${BUILD_DIR}"/INCHI-1-SRC/INCHI_API/libinchi/src/lib/libinchi.so dosym libinchi.so /usr/$(get_libdir)/libinchi.so.${PV} dosym libinchi.so /usr/$(get_libdir)/libinchi.so.$(ver_cut 1) doheader "${S}/INCHI-1-SRC/INCHI_BASE/src/"{inchi_api,ixa}.h }