sci-libs/ginkgo: improve ebuild
authorMatthias Maier <tamiko@gentoo.org>
Thu, 30 Apr 2020 21:03:30 +0000 (16:03 -0500)
committerMatthias Maier <tamiko@gentoo.org>
Thu, 30 Apr 2020 22:06:04 +0000 (17:06 -0500)
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Matthias Maier <tamiko@gentoo.org>
sci-libs/ginkgo/files/ginkgo-1.1.1-set_soname.patch [new file with mode: 0644]
sci-libs/ginkgo/ginkgo-1.1.1-r1.ebuild [moved from sci-libs/ginkgo/ginkgo-1.1.1.ebuild with 51% similarity]
sci-libs/ginkgo/ginkgo-9999.ebuild
sci-libs/ginkgo/metadata.xml

diff --git a/sci-libs/ginkgo/files/ginkgo-1.1.1-set_soname.patch b/sci-libs/ginkgo/files/ginkgo-1.1.1-set_soname.patch
new file mode 100644 (file)
index 0000000..9feceee
--- /dev/null
@@ -0,0 +1,14 @@
+diff --git a/cmake/build_helpers.cmake b/cmake/build_helpers.cmake
+index 8a8ad04..03c6db6 100644
+--- a/cmake/build_helpers.cmake
++++ b/cmake/build_helpers.cmake
+@@ -17,6 +17,9 @@ function(ginkgo_compile_features name)
+     if(GINKGO_WITH_IWYU AND GINKGO_IWYU_PATH)
+         set_property(TARGET "${name}" PROPERTY CXX_INCLUDE_WHAT_YOU_USE ${GINKGO_IWYU_PATH})
+     endif()
++    # Set an appropriate SONAME
++    set_property(TARGET "${name}" PROPERTY
++        SOVERSION "${Ginkgo_VERSION}")
+     if(GINKGO_CHANGED_SHARED_LIBRARY)
+         # Put all shared libraries and corresponding imported libraries into the specified path
+         set_property(TARGET "${name}" PROPERTY
similarity index 51%
rename from sci-libs/ginkgo/ginkgo-1.1.1.ebuild
rename to sci-libs/ginkgo/ginkgo-1.1.1-r1.ebuild
index a3c8615833dcd93942619f89438b499746d44016..5348b9a51be6af43379b07eaec5bcc760b7a12a2 100644 (file)
@@ -8,19 +8,34 @@ inherit cmake-utils
 DESCRIPTION="Numerical linear algebra software package"
 HOMEPAGE="https://ginkgo-project.github.io/"
 
-SRC_URI="https://github.com/${PN}-project/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="~amd64 ~x86"
+if [[ ${PV} = *9999* ]]; then
+       EGIT_REPO_URI="https://github.com/ginkgo-project/ginkgo"
+       SRC_URI=""
+       KEYWORDS=""
+       inherit git-r3
+else
+       SRC_URI="https://github.com/${PN}-project/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+       KEYWORDS="~amd64 ~x86"
+fi
 
 LICENSE="BSD-with-attribution"
 SLOT="0"
-IUSE=""
+IUSE="+openmp cuda"
 
-# TODO: add slepc use flag once slepc is packaged for gentoo-science
-REQUIRED_USE=""
+RDEPEND="
+       cuda? ( dev-util/nvidia-cuda-sdk )"
+DEPEND="${RDEPEND}"
 
-RDEPEND=""
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.1.1-set_soname.patch
+)
 
-DEPEND=""
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] && \
+               use openmp && ! tc-has-openmp ; then
+                       die "Need an OpenMP capable compiler"
+       fi
+}
 
 src_prepare() {
        sed -i \
@@ -38,7 +53,8 @@ src_configure() {
                -DGINKGO_BUILD_TESTS=OFF
                -DGINKGO_BUILD_BENCHMARKS=OFF
                -DGINKGO_BUILD_REFERENCE=ON
-               -DGINKGO_BUILD_OMP=ON
+               -DGINKGO_BUILD_OMP="$(usex openmp)"
+               -DGINKGO_BUILD_CUDA="$(usex cuda)"
        )
        cmake-utils_src_configure
 }
index 3b9102d21654d10fc5c730e8cae2eb0fada6989d..5348b9a51be6af43379b07eaec5bcc760b7a12a2 100644 (file)
@@ -8,21 +8,34 @@ inherit cmake-utils
 DESCRIPTION="Numerical linear algebra software package"
 HOMEPAGE="https://ginkgo-project.github.io/"
 
-inherit git-r3
-EGIT_REPO_URI="https://github.com/ginkgo-project/ginkgo"
-SRC_URI=""
-KEYWORDS=""
+if [[ ${PV} = *9999* ]]; then
+       EGIT_REPO_URI="https://github.com/ginkgo-project/ginkgo"
+       SRC_URI=""
+       KEYWORDS=""
+       inherit git-r3
+else
+       SRC_URI="https://github.com/${PN}-project/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+       KEYWORDS="~amd64 ~x86"
+fi
 
 LICENSE="BSD-with-attribution"
 SLOT="0"
-IUSE=""
+IUSE="+openmp cuda"
 
-# TODO: add slepc use flag once slepc is packaged for gentoo-science
-REQUIRED_USE=""
+RDEPEND="
+       cuda? ( dev-util/nvidia-cuda-sdk )"
+DEPEND="${RDEPEND}"
 
-RDEPEND=""
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.1.1-set_soname.patch
+)
 
-DEPEND=""
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]] && \
+               use openmp && ! tc-has-openmp ; then
+                       die "Need an OpenMP capable compiler"
+       fi
+}
 
 src_prepare() {
        sed -i \
@@ -40,7 +53,8 @@ src_configure() {
                -DGINKGO_BUILD_TESTS=OFF
                -DGINKGO_BUILD_BENCHMARKS=OFF
                -DGINKGO_BUILD_REFERENCE=ON
-               -DGINKGO_BUILD_OMP=ON
+               -DGINKGO_BUILD_OMP="$(usex openmp)"
+               -DGINKGO_BUILD_CUDA="$(usex cuda)"
        )
        cmake-utils_src_configure
 }
index e67b3457031398527e1215bba6e8274a0a2cf179..2b6a2c10b33237b15b64f51adcba8ed05793f73b 100644 (file)
@@ -15,6 +15,7 @@
                implemented using modern C++, with GPU kernels implemented in CUDA.
        </longdescription>
        <use>
+               <flag name="cuda">Add support for cuda assimp (<pkg>dev-util/nvidia-cuda-sdk</pkg>)</flag>
        </use>
        <upstream>
                <remote-id type="github">ginkgo-project/ginkgo</remote-id>