commit:     a3a57530854f61379e2c724ba75010a29c54ad35
Author:     Bernd Waibel <waebbl <AT> gmail <DOT> com>
AuthorDate: Mon Apr 22 09:37:37 2019 +0000
Commit:     Bernd Waibel <waebbl <AT> gmail <DOT> com>
CommitDate: Mon Apr 22 09:37:37 2019 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=a3a57530

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 <AT> gmail.com>

 dev-util/pybind11/Manifest              |  1 +
 dev-util/pybind11/metadata.xml          | 12 +++++
 dev-util/pybind11/pybind11-2.2.4.ebuild | 94 +++++++++++++++++++++++++++++++++
 3 files changed, 107 insertions(+)

diff --git a/dev-util/pybind11/Manifest b/dev-util/pybind11/Manifest
new file mode 100644
index 0000000..5a4fe9b
--- /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 0000000..e757cfb
--- /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>[email protected]</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 0000000..81fe08d
--- /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
+}

Reply via email to