commit: 0e12c2266a4dd55e9df23841d9f430d69e5a2a05 Author: Sergey Torokhov <torokhov-s-a <AT> yandex <DOT> ru> AuthorDate: Sat Nov 26 07:12:51 2022 +0000 Commit: Sergey Torokhov <torokhov-s-a <AT> yandex <DOT> ru> CommitDate: Sat Nov 26 07:12:51 2022 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=0e12c226
dev-util/fpm: add USE=openmp to build targets in parallel where possible Signed-off-by: Sergey Torokhov <torokhov-s-a <AT> yandex.ru> dev-util/fpm/fpm-0.7.0.ebuild | 24 +++++++++++++++++++++--- dev-util/fpm/metadata.xml | 3 +++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/dev-util/fpm/fpm-0.7.0.ebuild b/dev-util/fpm/fpm-0.7.0.ebuild index 2d1f62b6a..60e532ebc 100644 --- a/dev-util/fpm/fpm-0.7.0.ebuild +++ b/dev-util/fpm/fpm-0.7.0.ebuild @@ -19,7 +19,7 @@ SRC_URI=" LICENSE="MIT" SLOT="0" KEYWORDS="~amd64 ~x86" -IUSE="doc" +IUSE="openmp doc" RESTRICT="test" CDEPEND=" @@ -48,9 +48,27 @@ PATCHES="${FILESDIR}/${P}_fpm_toml.patch" BSDIR="build/bootstrap" # Bootstrap directory path +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +set_omp_flag() { + OMPFLAG="" + if use openmp ; then + case $(tc-getFC) in + *gfortran* ) + OMPFLAG="-fopenmp" ;; + * ) + die "Sorry, only GNU gfortran is currently supported in the ebuild" ;; + esac + fi +} + pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp fortran-2_pkg_setup python-any-r1_pkg_setup + set_omp_flag } src_prepare() { @@ -70,7 +88,7 @@ src_compile() { "$(tc-getFC)" -J "${BSDIR}" -o "${BSDIR}"/fpm "${BSDIR}/${P}.F90" || die # Use the bootstrap binary to build the feature complete fpm version - "${BSDIR}"/fpm build --compiler "$(tc-getFC)" --flag "${FCFLAGS} -I/usr/include/toml-f -I/usr/include/m_cli2" \ + "${BSDIR}"/fpm build --compiler "$(tc-getFC)" --flag "${FCFLAGS} ${OMPFLAG} -I/usr/include/toml-f -I/usr/include/m_cli2" \ --c-compiler "$(tc-getCC)" --c-flag "${CFLAGS}" \ --cxx-compiler "$(tc-getCXX)" --cxx-flag "${CXXFLAGS}" \ --archiver="$(tc-getAR)" --link-flag "${LDFLAGS}" @@ -84,7 +102,7 @@ src_compile() { src_install() { # Set prefix and pass all used env flags to avoid recompiling with default values "${BSDIR}"/fpm install --prefix "${ED}/usr" \ - --compiler "$(tc-getFC)" --flag "${FCFLAGS} -I/usr/include/toml-f -I/usr/include/m_cli2" \ + --compiler "$(tc-getFC)" --flag "${FCFLAGS} ${OMPFLAG} -I/usr/include/toml-f -I/usr/include/m_cli2" \ --c-compiler "$(tc-getCC)" --c-flag "${CFLAGS}" \ --cxx-compiler "$(tc-getCXX)" --cxx-flag "${CXXFLAGS}" \ --archiver="$(tc-getAR)" --link-flag "${LDFLAGS}" diff --git a/dev-util/fpm/metadata.xml b/dev-util/fpm/metadata.xml index f45acb901..fac9ec00a 100644 --- a/dev-util/fpm/metadata.xml +++ b/dev-util/fpm/metadata.xml @@ -5,6 +5,9 @@ <email>torokhov-...@yandex.ru</email> <name>Sergey Torokhov</name> </maintainer> + <use> + <flag name="openmp">OpenMP support to build targets in parallel where possible</flag> + </use> <upstream> <remote-id type="github">fortran-lang/fpm</remote-id> </upstream>