mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-06 02:17:34 -08:00
sci-libs/hdf5: Port to CMake (again)
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
parent
0416108771
commit
70abb3acfb
64
sci-libs/hdf5/files/hdf5-1.14.6-cmake-h5cc.patch
Normal file
64
sci-libs/hdf5/files/hdf5-1.14.6-cmake-h5cc.patch
Normal file
@ -0,0 +1,64 @@
|
||||
From 02b701653deb5eeaa6fe4462ba5c9bdd30dc778d Mon Sep 17 00:00:00 2001
|
||||
From: Atri Bhattacharya <badshah400@gmail.org>
|
||||
Date: Tue, 11 Mar 2025 22:44:29 +0530
|
||||
Subject: [PATCH 1/2] h5cc: Fix location of settings and pkgconfig files
|
||||
|
||||
In h5cc and other compiler wrappers, drop hardcoded 'lib' as the dir for
|
||||
libhdf5.settings and pkgconfig scripts and use cmake computed values for
|
||||
HDF5_INSTALL_LIB_DIR. This fixes issues on systems where the libdir is
|
||||
'lib64' for instance, as on 64-bit Linux OSes, and 'lib' in the
|
||||
wrappers point to incorrect locations of the settings and pkgconfig
|
||||
files.
|
||||
---
|
||||
config/cmake/libh5cc.in | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/config/cmake/libh5cc.in b/config/cmake/libh5cc.in
|
||||
index 2608f49423a..3ac9588740b 100644
|
||||
--- a/config/cmake/libh5cc.in
|
||||
+++ b/config/cmake/libh5cc.in
|
||||
@@ -32,7 +32,7 @@ pc_args=""
|
||||
# libhdf5.settings file residing in the lib directory.
|
||||
showconfigure()
|
||||
{
|
||||
- cat $dir/lib/libhdf5.settings
|
||||
+ cat $dir/@HDF5_INSTALL_LIB_DIR@/libhdf5.settings
|
||||
status=$?
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ usage() {
|
||||
exit $EXIT_FAILURE
|
||||
}
|
||||
|
||||
-export PKG_CONFIG_PATH=$dir/lib/pkgconfig
|
||||
+export PKG_CONFIG_PATH=$dir/@HDF5_INSTALL_LIB_DIR@/pkgconfig
|
||||
|
||||
for arg in $@ ; do
|
||||
case "$arg" in
|
||||
|
||||
From b777d6f4d8df67726c7611a945f3e204513efd16 Mon Sep 17 00:00:00 2001
|
||||
From: Atri Bhattacharya <badshah400@gmail.org>
|
||||
Date: Tue, 11 Mar 2025 22:52:17 +0530
|
||||
Subject: [PATCH 2/2] h5cc: Drop -show from output when calling command.
|
||||
|
||||
When calling `h5cc -show FOO`, the output should not repeat the '-show'
|
||||
argument itself. This commit fixes the '-show' command invoked from a
|
||||
cmake built h5cc to be consistent with an (previously) autotools built
|
||||
one.
|
||||
---
|
||||
config/cmake/libh5cc.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/config/cmake/libh5cc.in b/config/cmake/libh5cc.in
|
||||
index 3ac9588740b..2af2abf0aff 100644
|
||||
--- a/config/cmake/libh5cc.in
|
||||
+++ b/config/cmake/libh5cc.in
|
||||
@@ -66,7 +66,7 @@ for arg in $@ ; do
|
||||
exit $status
|
||||
;;
|
||||
-show)
|
||||
- echo @_PKG_CONFIG_COMPILER@ $@ `pkg-config $pc_args --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@`
|
||||
+ echo @_PKG_CONFIG_COMPILER@ ${@:2} `pkg-config $pc_args --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@`
|
||||
exit $status
|
||||
;;
|
||||
-help)
|
||||
63
sci-libs/hdf5/files/hdf5-1.14.6-h5cc-sh.patch
Normal file
63
sci-libs/hdf5/files/hdf5-1.14.6-h5cc-sh.patch
Normal file
@ -0,0 +1,63 @@
|
||||
From 4cca21399b3bca4d21ed962640b8bdee5062550b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
||||
Date: Tue, 22 Apr 2025 20:24:09 +0200
|
||||
Subject: [PATCH 1/2] h5cc: Fix bashism
|
||||
|
||||
Replace the `${@:2}` construct that is specific to bash shell with
|
||||
a more portable approach based on `shift`, in order to restore
|
||||
compatibility with more strict POSIX shells. This fixes a regression
|
||||
introduced in #5361.
|
||||
---
|
||||
config/cmake/libh5cc.in | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/config/cmake/libh5cc.in b/config/cmake/libh5cc.in
|
||||
index 2af2abf0aff..eea811e5e18 100644
|
||||
--- a/config/cmake/libh5cc.in
|
||||
+++ b/config/cmake/libh5cc.in
|
||||
@@ -66,7 +66,8 @@ for arg in $@ ; do
|
||||
exit $status
|
||||
;;
|
||||
-show)
|
||||
- echo @_PKG_CONFIG_COMPILER@ ${@:2} `pkg-config $pc_args --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@`
|
||||
+ shift
|
||||
+ echo @_PKG_CONFIG_COMPILER@ $@ `pkg-config $pc_args --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@`
|
||||
exit $status
|
||||
;;
|
||||
-help)
|
||||
|
||||
From a8b2c89ad7d1cfd016e6e901efa14a52f65fa883 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
||||
Date: Tue, 22 Apr 2025 20:27:26 +0200
|
||||
Subject: [PATCH 2/2] h5cc: Fix passing arguments to compiler subprocesses
|
||||
|
||||
Pass arguments to subprocesses via quoted `"$@"` rather than plain `$@`,
|
||||
in order to prevent the shell from applying word splitting, filename
|
||||
expansion, etc., and therefore ensure that they are passed through
|
||||
to the compiler process unchanged.
|
||||
---
|
||||
config/cmake/libh5cc.in | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/config/cmake/libh5cc.in b/config/cmake/libh5cc.in
|
||||
index eea811e5e18..939698c3640 100644
|
||||
--- a/config/cmake/libh5cc.in
|
||||
+++ b/config/cmake/libh5cc.in
|
||||
@@ -67,7 +67,7 @@ for arg in $@ ; do
|
||||
;;
|
||||
-show)
|
||||
shift
|
||||
- echo @_PKG_CONFIG_COMPILER@ $@ `pkg-config $pc_args --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@`
|
||||
+ echo @_PKG_CONFIG_COMPILER@ "$@" `pkg-config $pc_args --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@`
|
||||
exit $status
|
||||
;;
|
||||
-help)
|
||||
@@ -79,7 +79,7 @@ for arg in $@ ; do
|
||||
pc_args="$pc_args $arg"
|
||||
;;
|
||||
*)
|
||||
- @_PKG_CONFIG_COMPILER@ $@ `pkg-config $pc_args --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@`
|
||||
+ @_PKG_CONFIG_COMPILER@ "$@" `pkg-config $pc_args --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@`
|
||||
status=$?
|
||||
exit $status
|
||||
;;
|
||||
187
sci-libs/hdf5/files/hdf5-1.14.6-override-compiler.patch
Normal file
187
sci-libs/hdf5/files/hdf5-1.14.6-override-compiler.patch
Normal file
@ -0,0 +1,187 @@
|
||||
From c60ce3e3e9110740bf1f3f0914943ecb549d7d33 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
||||
Date: Tue, 22 Apr 2025 20:54:12 +0200
|
||||
Subject: [PATCH] h5cc: Allow overriding the compilers written into the file
|
||||
|
||||
Add a set of `PKG_CONFIG_C_COMPILER`, `PKG_CONFIG_CXX_COMPILER`
|
||||
and `PKG_CONFIG_Fortran_COMPILER` variables that can be used to override
|
||||
the compiler string written into `h5cc`, `h5c++`, etc. This is
|
||||
particularly useful when e.g. using ccache during the build,
|
||||
as the ccache path otherwise ends up in `h5cc`.
|
||||
---
|
||||
CMakeLists.txt | 24 ++++++++++++++++++++++++
|
||||
c++/src/CMakeLists.txt | 6 +-----
|
||||
fortran/src/CMakeLists.txt | 6 +-----
|
||||
hl/c++/src/CMakeLists.txt | 6 +-----
|
||||
hl/fortran/src/CMakeLists.txt | 6 +-----
|
||||
hl/src/CMakeLists.txt | 6 +-----
|
||||
release_docs/INSTALL_CMake.txt | 4 ++++
|
||||
src/CMakeLists.txt | 6 +-----
|
||||
8 files changed, 34 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index a95a6e4a48c..d0e2fe8d34c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1057,6 +1057,16 @@ else ()
|
||||
set (HDF5_ENABLE_MAP_API OFF CACHE BOOL "Build the map API" FORCE)
|
||||
endif ()
|
||||
|
||||
+#-----------------------------------------------------------------------------
|
||||
+# Option to override the compiler for pkg-config & h5cc
|
||||
+#-----------------------------------------------------------------------------
|
||||
+if (HDF5_ENABLE_PARALLEL AND MPI_C_FOUND)
|
||||
+ set (_PKG_CONFIG_C_COMPILER ${MPI_C_COMPILER})
|
||||
+else ()
|
||||
+ set (_PKG_CONFIG_C_COMPILER ${CMAKE_C_COMPILER})
|
||||
+endif ()
|
||||
+set (PKG_CONFIG_C_COMPILER ${_PKG_CONFIG_C_COMPILER} CACHE STRING "C compiler to use in h5cc")
|
||||
+
|
||||
#-----------------------------------------------------------------------------
|
||||
# Add the HDF5 Library Target to the build
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -1220,6 +1230,13 @@ if (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/for
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
+ if (HDF5_ENABLE_PARALLEL AND MPI_Fortran_FOUND)
|
||||
+ set (_PKG_CONFIG_Fortran_COMPILER ${MPI_Fortran_COMPILER})
|
||||
+ else ()
|
||||
+ set (_PKG_CONFIG_Fortran_COMPILER ${CMAKE_Fortran_COMPILER})
|
||||
+ endif ()
|
||||
+ set (PKG_CONFIG_Fortran_COMPILER ${_PKG_CONFIG_Fortran_COMPILER} CACHE STRING "Fortran compiler to use in h5cc")
|
||||
+
|
||||
add_subdirectory (fortran)
|
||||
if (HDF5_BUILD_HL_LIB)
|
||||
if (EXISTS "${HDF5_SOURCE_DIR}/hl/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl/fortran")
|
||||
@@ -1247,6 +1264,13 @@ if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++")
|
||||
|
||||
include (${HDF_RESOURCES_DIR}/HDFCompilerCXXFlags.cmake)
|
||||
|
||||
+ if (HDF5_ENABLE_PARALLEL AND MPI_CXX_FOUND)
|
||||
+ set (_PKG_CONFIG_CXX_COMPILER ${MPI_CXX_COMPILER})
|
||||
+ else ()
|
||||
+ set (_PKG_CONFIG_CXX_COMPILER ${CMAKE_CXX_COMPILER})
|
||||
+ endif ()
|
||||
+ set (PKG_CONFIG_CXX_COMPILER ${_PKG_CONFIG_CXX_COMPILER} CACHE STRING "C++ compiler to use in h5cc")
|
||||
+
|
||||
add_subdirectory (c++)
|
||||
if (HDF5_BUILD_HL_LIB)
|
||||
if (EXISTS "${HDF5_SOURCE_DIR}/hl/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl/c++")
|
||||
diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt
|
||||
index 09546acd451..21325d6ca50 100644
|
||||
--- a/c++/src/CMakeLists.txt
|
||||
+++ b/c++/src/CMakeLists.txt
|
||||
@@ -206,11 +206,7 @@ install (
|
||||
)
|
||||
|
||||
if (NOT WIN32 AND NOT MINGW)
|
||||
- if (HDF5_ENABLE_PARALLEL AND MPI_CXX_FOUND)
|
||||
- set (_PKG_CONFIG_COMPILER ${MPI_CXX_COMPILER})
|
||||
- else ()
|
||||
- set (_PKG_CONFIG_COMPILER ${CMAKE_CXX_COMPILER})
|
||||
- endif ()
|
||||
+ set (_PKG_CONFIG_COMPILER ${PKG_CONFIG_CXX_COMPILER})
|
||||
configure_file (
|
||||
${HDF_RESOURCES_DIR}/libh5cc.in
|
||||
${HDF5_BINARY_DIR}/CMakeFiles/h5c++
|
||||
diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt
|
||||
index 2b6da612015..92bf227b813 100644
|
||||
--- a/fortran/src/CMakeLists.txt
|
||||
+++ b/fortran/src/CMakeLists.txt
|
||||
@@ -614,11 +614,7 @@ install (
|
||||
)
|
||||
|
||||
if (NOT WIN32 AND NOT MINGW)
|
||||
- if (HDF5_ENABLE_PARALLEL AND MPI_Fortran_FOUND)
|
||||
- set (_PKG_CONFIG_COMPILER ${MPI_Fortran_COMPILER})
|
||||
- else ()
|
||||
- set (_PKG_CONFIG_COMPILER ${CMAKE_Fortran_COMPILER})
|
||||
- endif ()
|
||||
+ set (_PKG_CONFIG_COMPILER ${PKG_CONFIG_Fortran_COMPILER})
|
||||
configure_file (
|
||||
${HDF_RESOURCES_DIR}/libh5cc.in
|
||||
${HDF5_BINARY_DIR}/CMakeFiles/h5fc
|
||||
diff --git a/hl/c++/src/CMakeLists.txt b/hl/c++/src/CMakeLists.txt
|
||||
index 3f2bd5af14a..0e6996437be 100644
|
||||
--- a/hl/c++/src/CMakeLists.txt
|
||||
+++ b/hl/c++/src/CMakeLists.txt
|
||||
@@ -124,11 +124,7 @@ install (
|
||||
)
|
||||
|
||||
if (NOT WIN32 AND NOT MINGW)
|
||||
- if (HDF5_ENABLE_PARALLEL AND MPI_CXX_FOUND)
|
||||
- set (_PKG_CONFIG_COMPILER ${MPI_CXX_COMPILER})
|
||||
- else ()
|
||||
- set (_PKG_CONFIG_COMPILER ${CMAKE_CXX_COMPILER})
|
||||
- endif ()
|
||||
+ set (_PKG_CONFIG_COMPILER ${PKG_CONFIG_CXX_COMPILER})
|
||||
configure_file (
|
||||
${HDF_RESOURCES_DIR}/libh5cc.in
|
||||
${HDF5_BINARY_DIR}/CMakeFiles/h5hlc++
|
||||
diff --git a/hl/fortran/src/CMakeLists.txt b/hl/fortran/src/CMakeLists.txt
|
||||
index 649a9674d51..94864a6ceec 100644
|
||||
--- a/hl/fortran/src/CMakeLists.txt
|
||||
+++ b/hl/fortran/src/CMakeLists.txt
|
||||
@@ -359,11 +359,7 @@ install (
|
||||
)
|
||||
|
||||
if (NOT WIN32 AND NOT MINGW)
|
||||
- if (HDF5_ENABLE_PARALLEL AND MPI_Fortran_FOUND)
|
||||
- set (_PKG_CONFIG_COMPILER ${MPI_Fortran_COMPILER})
|
||||
- else ()
|
||||
- set (_PKG_CONFIG_COMPILER ${CMAKE_Fortran_COMPILER})
|
||||
- endif ()
|
||||
+ set (_PKG_CONFIG_COMPILER ${PKG_CONFIG_Fortran_COMPILER})
|
||||
configure_file (
|
||||
${HDF_RESOURCES_DIR}/libh5cc.in
|
||||
${HDF5_BINARY_DIR}/CMakeFiles/h5hlfc
|
||||
diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt
|
||||
index 3bca28e29f5..85fe2e87d98 100644
|
||||
--- a/hl/src/CMakeLists.txt
|
||||
+++ b/hl/src/CMakeLists.txt
|
||||
@@ -156,11 +156,7 @@ install (
|
||||
)
|
||||
|
||||
if (NOT WIN32 AND NOT MINGW)
|
||||
- if (HDF5_ENABLE_PARALLEL AND MPI_C_FOUND)
|
||||
- set (_PKG_CONFIG_COMPILER ${MPI_C_COMPILER})
|
||||
- else ()
|
||||
- set (_PKG_CONFIG_COMPILER ${CMAKE_C_COMPILER})
|
||||
- endif ()
|
||||
+ set (_PKG_CONFIG_COMPILER ${PKG_CONFIG_C_COMPILER})
|
||||
configure_file (
|
||||
${HDF_RESOURCES_DIR}/libh5cc.in
|
||||
${HDF5_BINARY_DIR}/CMakeFiles/h5hlcc
|
||||
diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt
|
||||
index 14e4fa6d54f..bcec85603db 100644
|
||||
--- a/release_docs/INSTALL_CMake.txt
|
||||
+++ b/release_docs/INSTALL_CMake.txt
|
||||
@@ -861,6 +861,10 @@ HDF5_ENABLE_FORMATTERS "format source files"
|
||||
HDF5_BUILD_DOC "Build documentation" OFF
|
||||
HDF5_ENABLE_DOXY_WARNINGS "Enable fail if doxygen parsing has warnings." OFF
|
||||
|
||||
+PKG_CONFIG_C_COMPILER "C compiler to use in h5cc" ${CMAKE_C_COMPILER}
|
||||
+PKG_CONFIG_CXX_COMPILER "C++ compiler to use in h5cc" ${CMAKE_CXX_COMPILER}
|
||||
+PKG_CONFIG_Fortran_COMPILER "Fortran compiler to use in h5cc" ${CMAKE_Fortran_COMPILER}
|
||||
+
|
||||
---------------- HDF5 VFD Options ---------------------
|
||||
HDF5_ENABLE_DIRECT_VFD "Build the Direct I/O Virtual File Driver" OFF
|
||||
HDF5_ENABLE_MIRROR_VFD "Build the Mirror Virtual File Driver" OFF
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index e81f1d84e95..404d3e35c62 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -1253,11 +1253,7 @@ install (
|
||||
)
|
||||
|
||||
if (NOT WIN32)
|
||||
- if (HDF5_ENABLE_PARALLEL AND MPI_C_FOUND)
|
||||
- set (_PKG_CONFIG_COMPILER ${MPI_C_COMPILER})
|
||||
- else ()
|
||||
- set (_PKG_CONFIG_COMPILER ${CMAKE_C_COMPILER})
|
||||
- endif ()
|
||||
+ set (_PKG_CONFIG_COMPILER ${PKG_CONFIG_C_COMPILER})
|
||||
configure_file (
|
||||
${HDF_RESOURCES_DIR}/libh5cc.in
|
||||
${HDF5_BINARY_DIR}/CMakeFiles/h5cc
|
||||
124
sci-libs/hdf5/hdf5-1.14.6-r1.ebuild
Normal file
124
sci-libs/hdf5/hdf5-1.14.6-r1.ebuild
Normal file
@ -0,0 +1,124 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
FORTRAN_NEEDED=fortran
|
||||
|
||||
inherit cmake fortran-2 flag-o-matic toolchain-funcs
|
||||
|
||||
MY_PV=${PV/_p/-}
|
||||
MY_P=${PN}-${MY_PV}
|
||||
MAJOR_P=${PN}-$(ver_cut 1-2)
|
||||
|
||||
DESCRIPTION="General purpose library and file format for storing scientific data"
|
||||
HOMEPAGE="https://github.com/HDFGroup/hdf5/"
|
||||
SRC_URI="https://github.com/HDFGroup/hdf5/releases/download/${PN}_${MY_PV/-/.}/${MY_P}.tar.gz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="NCSA-HDF"
|
||||
SLOT="0/310-cmake"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
|
||||
IUSE="cxx debug fortran +hl mpi szip test threads unsupported zlib"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="
|
||||
!unsupported? (
|
||||
?? ( cxx mpi )
|
||||
threads? ( !cxx !mpi !fortran !hl )
|
||||
)
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
mpi? ( virtual/mpi[romio] )
|
||||
szip? ( virtual/szip )
|
||||
zlib? ( sys-libs/zlib:= )
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
BDEPEND="
|
||||
dev-lang/perl
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
# https://github.com/HDFGroup/hdf5/pull/5361
|
||||
"${FILESDIR}"/hdf5-1.14.6-cmake-h5cc.patch
|
||||
# https://github.com/HDFGroup/hdf5/pull/5465
|
||||
"${FILESDIR}"/hdf5-1.14.6-h5cc-sh.patch
|
||||
# https://github.com/HDFGroup/hdf5/pull/5467
|
||||
"${FILESDIR}"/hdf5-1.14.6-override-compiler.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
use fortran && fortran-2_pkg_setup
|
||||
|
||||
if use mpi; then
|
||||
if has_version 'sci-libs/hdf5[-mpi]'; then
|
||||
ewarn "Installing hdf5 with mpi enabled with a previous hdf5 with mpi disabled may fail."
|
||||
ewarn "Try to uninstall the current hdf5 prior to enabling mpi support."
|
||||
fi
|
||||
|
||||
export CC=mpicc
|
||||
use fortran && export FC=mpif90
|
||||
elif has_version 'sci-libs/hdf5[mpi]'; then
|
||||
ewarn "Installing hdf5 with mpi disabled while having hdf5 installed with mpi enabled may fail."
|
||||
ewarn "Try to uninstall the current hdf5 prior to disabling mpi support."
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# bug #686620
|
||||
use sparc && tc-is-gcc && append-flags -fno-tree-ccp
|
||||
|
||||
local mycmakeargs=(
|
||||
-DHDF5_INSTALL_CMAKE_DIR=$(get_libdir)/cmake/hdf5
|
||||
-DHDF5_INSTALL_LIB_DIR=$(get_libdir)
|
||||
# just COPYING
|
||||
-DHDF5_INSTALL_DATA_DIR=tmp
|
||||
# redundant to include?
|
||||
-DHDF5_INSTALL_MODULE_DIR=tmp
|
||||
-DHDF5_INSTALL_DOC_DIR=share/doc/${PF}
|
||||
-DH5_DEFAULT_PLUGINDIR="${EPREFIX}/usr/$(get_libdir)/${PN}/plugin"
|
||||
|
||||
-DALLOW_UNSUPPORTED=$(usex unsupported)
|
||||
-DONLY_SHARED_LIBS=ON
|
||||
-DHDF5_BUILD_GENERATORS=OFF
|
||||
-DHDF5_ENABLE_TRACE=$(usex debug)
|
||||
-DHDF5_ENABLE_HDFS=OFF
|
||||
-DHDF5_ENABLE_PARALLEL=$(usex mpi)
|
||||
-DHDF5_ENABLE_SUBFILING_VFD=OFF
|
||||
-DHDF5_ENABLE_SZIP_SUPPORT=$(usex szip)
|
||||
-DHDF5_ENABLE_Z_LIB_SUPPORT=$(usex zlib)
|
||||
-DHDF5_ENABLE_THREADSAFE=$(usex threads)
|
||||
-DHDF5_ENABLE_MAP_API=OFF
|
||||
-DHDF5_BUILD_DOC=OFF
|
||||
-DBUILD_TESTING=$(usex test)
|
||||
-DHDF5_BUILD_PARALLEL_TOOLS=OFF
|
||||
-DHDF5_BUILD_TOOLS=ON
|
||||
-DHDF5_ENABLE_PLUGIN_SUPPORT=OFF
|
||||
-DHDF5_BUILD_HL_LIB=$(usex hl)
|
||||
-DHDF5_BUILD_FORTRAN=$(usex fortran)
|
||||
-DHDF5_BUILD_CPP_LIB=$(usex cxx)
|
||||
-DHDF5_BUILD_JAVA=OFF
|
||||
-DHDF5_BUILD_EXAMPLES=OFF
|
||||
)
|
||||
|
||||
# do not force the compiler used for build
|
||||
if use mpi; then
|
||||
mycmakeargs+=( -DPKG_CONFIG_C_COMPILER=mpicc )
|
||||
use cxx && mycmakeargs+=( -DPKG_CONFIG_CXX_COMPILER=mpic++ )
|
||||
use fortran && mycmakeargs+=( -DPKG_CONFIG_Fortran_COMPILER=mpif90 )
|
||||
else
|
||||
mycmakeargs+=( -DPKG_CONFIG_C_COMPILER='${CC:-cc}' )
|
||||
use cxx && mycmakeargs+=( -DPKG_CONFIG_CXX_COMPILER='${CXX:-c++}' )
|
||||
use fortran &&
|
||||
mycmakeargs+=( -DPKG_CONFIG_Fortran_COMPILER='${FC:-gfortran}' )
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
rm -r "${ED}/usr/tmp" || die
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user