aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Waibel <waebbl@gmail.com>2019-04-22 11:37:37 +0200
committerBernd Waibel <waebbl@gmail.com>2019-04-22 11:37:37 +0200
commita3a57530854f61379e2c724ba75010a29c54ad35 (patch)
treee0512bfbc5f52f0a077fcc93d38e2b92e38d1751
parentdev-util/codespell: new package (diff)
downloadguru-a3a57530854f61379e2c724ba75010a29c54ad35.tar.gz
guru-a3a57530854f61379e2c724ba75010a29c54ad35.tar.bz2
guru-a3a57530854f61379e2c724ba75010a29c54ad35.zip
dev-util/pybind11: new package
Bidirectional library for C++11 and Python bindings Package-Manager: Portage-2.3.62, Repoman-2.3.12 Signed-off-by: Bernd Waibel <waebbl@gmail.com>
-rw-r--r--dev-util/pybind11/Manifest1
-rw-r--r--dev-util/pybind11/metadata.xml12
-rw-r--r--dev-util/pybind11/pybind11-2.2.4.ebuild94
3 files changed, 107 insertions, 0 deletions
diff --git a/dev-util/pybind11/Manifest b/dev-util/pybind11/Manifest
new file mode 100644
index 000000000..5a4fe9b4d
--- /dev/null
+++ b/dev-util/pybind11/Manifest
@@ -0,0 +1 @@
+DIST pybind11-2.2.4.tar.gz 548404 BLAKE2B b56230b5a4c0f392b714ead40d414a8b587396dbeec4089f5b77141cc7c2caf135f17f680b653d2e5be8b60a19a48a716fe8e562f337650fdac76461fb982aee SHA512 6bddf5c885ff92a3e373bcedc6574dfefe8be9ebb6176c6c96d475457466c76bfb982c6df4066cb0fbead4b867f87dbc4fbc1605c80852635016f614330ce041
diff --git a/dev-util/pybind11/metadata.xml b/dev-util/pybind11/metadata.xml
new file mode 100644
index 000000000..e757cfbf9
--- /dev/null
+++ b/dev-util/pybind11/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>waebbl@gmail.com</email>
+ <name>Bernd Waibel</name>
+</maintainer>
+<longdescription>
+ Lightweight header-only library that exposes C++ types in Python and
+ vice versa, mainly to create Python bindings of existing C++ code.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-util/pybind11/pybind11-2.2.4.ebuild b/dev-util/pybind11/pybind11-2.2.4.ebuild
new file mode 100644
index 000000000..81fe08daa
--- /dev/null
+++ b/dev-util/pybind11/pybind11-2.2.4.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# according to upstream is compatible with 2.7 and 3.x
+# 3.7 not added due to some dependencies not yet supporting it
+PYTHON_COMPAT=( python{2_7,3_{5,6}} )
+
+inherit cmake-utils python-single-r1
+
+DESCRIPTION="Seamless operability between C++11 and Python"
+HOMEPAGE="https://pybind11.readthedocs.io/en/stable/"
+SRC_URI="https://github.com/pybind/pybind11/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="BSD"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc test"
+
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ${PYTHON_DEP}
+ doc? (
+ dev-python/breathe[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-cpp/catch
+ dev-libs/boost[python,${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ sci-libs/scipy[${PYTHON_USEDEP}]
+ )
+"
+
+RDEPEND="
+ ${PYTHON_DEP}
+ dev-cpp/eigen
+ sys-apps/texinfo
+ sys-devel/gettext[cxx]
+ virtual/man
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DOCS=( README.md CONTRIBUTING.md ISSUE_TEMPLATE.md )
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_configure() {
+ mycmakeargs=(
+ -DPYBIND11_INSTALL=ON
+ -DPYBIND11_TEST=$(usex test)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+
+ # documentation is not covered by cmake, but has it's own makefile
+ # using sphinx
+ if use doc; then
+ pushd "${S}"/docs || die
+ emake info man html
+ popd || die
+ fi
+}
+
+src_test() {
+ cmake-utils_src_test
+ pushd "${BUILD_DIR}" || die
+ emake check
+ popd || die
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ if use doc; then
+ local HTML_DOCS=( "${S}"/docs/.build/html/. )
+ einstalldocs
+
+ # install man and info pages
+ doman "${S}"/docs/.build/man/pybind11.1
+ doinfo "${S}"/docs/.build/texinfo/pybind11.info
+ fi
+}