summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2023-11-24 14:59:09 +0100
committerPacho Ramos <pacho@gentoo.org>2023-11-24 15:30:30 +0100
commit5d51f3a8f9c6c314856c2541c9aa1cb085d4928f (patch)
tree58af823bd9b7b803e0b590fba8624aad6efd46f8 /sci-chemistry
parentsci-biology/treeviewx: add 0.5.1.20100823_p4 (diff)
downloadgentoo-5d51f3a8f9c6c314856c2541c9aa1cb085d4928f.tar.gz
gentoo-5d51f3a8f9c6c314856c2541c9aa1cb085d4928f.tar.bz2
gentoo-5d51f3a8f9c6c314856c2541c9aa1cb085d4928f.zip
sci-chemistry/openbabel: Works with wxGTK 3.2
Signed-off-by: Pacho Ramos <pacho@gentoo.org>
Diffstat (limited to 'sci-chemistry')
-rw-r--r--sci-chemistry/openbabel/openbabel-3.1.1_p20210225-r1.ebuild280
-rw-r--r--sci-chemistry/openbabel/openbabel-9999.ebuild2
2 files changed, 281 insertions, 1 deletions
diff --git a/sci-chemistry/openbabel/openbabel-3.1.1_p20210225-r1.ebuild b/sci-chemistry/openbabel/openbabel-3.1.1_p20210225-r1.ebuild
new file mode 100644
index 000000000000..837978dbe580
--- /dev/null
+++ b/sci-chemistry/openbabel/openbabel-3.1.1_p20210225-r1.ebuild
@@ -0,0 +1,280 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+WX_GTK_VER=3.2-gtk3
+
+inherit cmake desktop flag-o-matic perl-functions python-r1 toolchain-funcs wxwidgets xdg-utils
+
+DESCRIPTION="Interconverts file formats used in molecular modeling"
+HOMEPAGE="https://openbabel.org/ https://github.com/openbabel/openbabel/"
+
+if [[ "${PV}" == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/openbabel/${PN}.git"
+else
+ if [[ "${PV}" == *_p* ]]; then # eg., openbabel-3.1.1_p20210325
+ # Set to commit hash
+ OPENBABEL_COMMIT=08e23f39b0cc39b4eebd937a5a2ffc1a7bac3e1b
+ SRC_URI="https://github.com/${PN}/${PN}/archive/${OPENBABEL_COMMIT}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN}-${OPENBABEL_COMMIT}"
+ else
+ MY_P="${PN}-$(ver_rs 1- -)"
+ SRC_URI="https://github.com/${PN}/${PN}/archive/${MY_P}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN}-${MY_P}"
+ fi
+ KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+fi
+
+SRC_URI="${SRC_URI}
+ https://openbabel.org/docs/dev/_static/babel130.png -> ${PN}.png
+ https://openbabel.org/OBTitle.jpg -> ${PN}.jpg"
+
+# See src/CMakeLists.txt for LIBRARY_VERSION
+SLOT="0/7.0.0"
+LICENSE="GPL-2"
+IUSE="cpu_flags_arm_neon cpu_flags_x86_sse2 cpu_flags_x86_sse4_2 doc examples +inchi json minimal openmp perl png python test wxwidgets"
+
+RESTRICT="!test? ( test )"
+
+# Inaccurate dependency logic upstream
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+ test? ( inchi json !minimal wxwidgets )
+"
+
+BDEPEND="
+ dev-lang/perl
+ doc? (
+ app-doc/doxygen
+ dev-texlive/texlive-latex
+ )
+ perl? ( >=dev-lang/swig-2 )
+ python? ( >=dev-lang/swig-2 )
+ test? ( dev-lang/python )
+"
+
+COMMON_DEPEND="
+ dev-cpp/eigen:3
+ dev-libs/libxml2:2
+ sys-libs/zlib:=
+ inchi? ( sci-libs/inchi )
+ json? ( >=dev-libs/rapidjson-1.1.0 )
+ png? ( x11-libs/cairo )
+ python? ( ${PYTHON_DEPS} )
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ perl? ( dev-lang/perl )
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ perl? (
+ dev-lang/perl:=
+ !sci-chemistry/openbabel-perl
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/openbabel-3.1.1-fix-time-check-cmake.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+prepare_python_bindings() {
+ mkdir -p scripts/${EPYTHON} || die
+ # Appends to scripts/CMakeLists.txt, substituting the correct tags, for
+ # each valid python implementation,
+ cat "${FILESDIR}"/${PN}-python.cmake | \
+ sed -e "s|@@EPYTHON@@|${EPYTHON}|" \
+ -e "s|@@PYTHON_INCUDE_DIR@@|$(python_get_includedir)|" \
+ -e "s|@@PYTHON_LIBS@@|$(python_get_LIBS)|" \
+ -e "s|@@PYTHON_SITEDIR@@|$(python_get_sitedir)|" >> \
+ scripts/CMakeLists.txt || die
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ if use perl; then
+ perl_set_version
+
+ sed -e "/\${LIB_INSTALL_DIR}\/auto/s|\${LIB_INSTALL_DIR}|${VENDOR_ARCH}|" \
+ -e "/\${LIB_INSTALL_DIR}\/Chemistry/s|\${LIB_INSTALL_DIR}|${VENDOR_ARCH}|" \
+ -i scripts/CMakeLists.txt || die
+ fi
+
+ if use python; then
+ # Skip the python bindings sections as we'll append our own
+ sed -e '/^if (PYTHON_BINDINGS)$/s|PYTHON_BINDINGS|false|' \
+ -i {scripts,test}/CMakeLists.txt || die
+ if use test; then
+ # Problems with testbindings built with -O2
+ local test_skip="@unittest.skip('Similar to Issue #2138')"
+ sed -e "/def testTemplates/s|^| ${test_skip}\\n|" \
+ -i test/testbindings.py || die
+ test_skip="@unittest.skip('Similar to Issue #2246')"
+ sed -e "/^def test_write_string/s|^|${test_skip}\\n|" \
+ -i test/testobconv_writers.py || die
+ fi
+ python_foreach_impl prepare_python_bindings
+ fi
+
+ # Remove dependency automagic
+ if ! use png; then
+ sed -e '/^find_package(Cairo/d' -i CMakeLists.txt || die
+ fi
+ if ! use wxwidgets; then
+ sed -e '/^find_package(wxWidgets/d' -i CMakeLists.txt || die
+ fi
+ if ! use inchi; then
+ sed -e '/^else()$/s|else\(\)|elseif\(false\)|' \
+ -i cmake/modules/FindInchi.cmake || die
+ fi
+
+ # Don't install example bins to /usr/bin
+ if use examples; then
+ sed -e "/RUNTIME DESTINATION/s|bin|share/doc/${PF}/examples|" \
+ -i doc/examples/CMakeLists.txt || die
+ fi
+
+ # boost is only used if building with gcc-3.x, which isn't supported in
+ # Gentoo. Still, it shouldn't look for, and include, its headers
+ sed -e '/find_package(Boost/d' -i {{tools,src}/,}CMakeLists.txt || die
+}
+
+src_configure() {
+ if use json; then
+ # -DOPTIMIZE_NATIVE=ON also forces -march=native so use
+ # cpu_flags to set defines instead
+ use cpu_flags_x86_sse2 && append-cppflags -DRAPIDJSON_SSE2
+ use cpu_flags_x86_sse4_2 && append-cppflags -DRAPIDJSON_SSE42
+ use cpu_flags_arm_neon && append-cppflags -DRAPIDJSON_NEON
+ fi
+
+ use wxwidgets && setup-wxwidgets
+
+ use_bindings() {
+ (use perl || use python) && (echo 'yes' || die) || (echo 'no' || die)
+ }
+
+ local mycmakeargs=(
+ -DBUILD_DOCS=$(usex doc)
+ -DBUILD_EXAMPLES=$(usex examples)
+ -DBUILD_GUI=$(usex wxwidgets)
+ -DENABLE_OPENMP=$(usex openmp)
+ -DENABLE_TESTS=$(usex test)
+ -DMINIMAL_BUILD=$(usex minimal)
+ # Set this, otherwise it defaults to true and forces WITH_INCHI=true
+ -DOPENBABEL_USE_SYSTEM_INCHI=$(usex inchi)
+ -DOPTIMIZE_NATIVE=OFF
+ -DPERL_BINDINGS=$(usex perl)
+ -DPYTHON_BINDINGS=$(usex python)
+ -DRUN_SWIG=$(use_bindings)
+ -DWITH_COORDGEN=false
+ -DWITH_INCHI=$(usex inchi)
+ -DWITH_JSON=$(usex json)
+ -DWITH_MAEPARSER=false
+ )
+
+ if use test; then
+ # Help cmake find the python interpreter when dev-lang/python-exec is built
+ # without native-symlinks support.
+ python_setup
+ mycmakeargs+=( -DPYTHON_EXECUTABLE="${PYTHON}" )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ # Wierd deadlock causes system_load to keep rising
+ cmake_src_test -j1
+}
+
+openbabel-optimize() {
+ python_optimize "${D}/$(python_get_sitedir)"/openbabel || die
+}
+
+src_install() {
+ cmake_src_install
+
+ docinto html
+ for x in doc/*.html; do
+ [[ ${x} != doc/api*.html ]] && dodoc ${x}
+ done
+ # Rendered in some html pages
+ newdoc "${DISTDIR}"/${PN}.png babel130.png
+ newdoc "${DISTDIR}"/${PN}.jpg OBTitle.jpg
+
+ if use doc; then
+ cmake_src_install docs
+ docinto html/API
+ dodoc -r doc/API/html/.
+ fi
+
+ if use examples; then
+ # no compression since we want ready-to-run scripts
+ docompress -x /usr/share/doc/${PF}/examples
+
+ # ${PV} doesn't correspond to the internal BABEL_VERSION for
+ # live or patch release builds so we grep it
+ local babel_ver=$(
+ grep '^#define BABEL_VERSION' < \
+ "${BUILD_DIR}"/include/openbabel/babelconfig.h | \
+ cut -d \" -f 2 || die
+ )
+ docinto examples/povray
+ dodoc doc/dioxin.* doc/README*.pov*
+ # Needed by the povray example
+ dosym ../../../../${PN}/${babel_ver}/babel_povray3.inc \
+ /usr/share/doc/${PF}/examples/povray/babel31.inc
+
+ fi
+
+ if use perl; then
+ docinto /
+ newdoc scripts/perl/Changes Changes.perl
+ newdoc scripts/perl/README README.perl
+ if use examples; then
+ docinto examples/perl
+ dodoc -r scripts/perl/examples/.
+ fi
+ fi
+
+ if use python; then
+ python_foreach_impl openbabel-optimize
+ docinto /
+ newdoc scripts/python/README.rst README.python.rst
+ docinto html
+ dodoc scripts/python/*.html
+ if use examples; then
+ docinto examples/python
+ dodoc -r scripts/python/examples/.
+ fi
+ fi
+
+ if use wxwidgets; then
+ make_desktop_entry obgui "Open Babel" ${PN}
+ doicon "${DISTDIR}"/${PN}.png
+ fi
+}
+
+pkg_postinst() {
+ use wxwidgets && xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ use wxwidgets && xdg_desktop_database_update
+}
diff --git a/sci-chemistry/openbabel/openbabel-9999.ebuild b/sci-chemistry/openbabel/openbabel-9999.ebuild
index 735a5e868ea5..b4641769ecfa 100644
--- a/sci-chemistry/openbabel/openbabel-9999.ebuild
+++ b/sci-chemistry/openbabel/openbabel-9999.ebuild
@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
-WX_GTK_VER=3.0-gtk3
+WX_GTK_VER=3.2-gtk3
inherit cmake desktop flag-o-matic perl-functions python-r1 toolchain-funcs wxwidgets xdg-utils