# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 FORTRAN_STANDARD="2003" PYTHON_COMPAT=( python3_{10..12} ) inherit fortran-2 python-any-r1 toolchain-funcs DESCRIPTION="Fortran Package Manager (fpm)" HOMEPAGE="https://fpm.fortran-lang.org" SRC_URI=" https://github.com/fortran-lang/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz https://github.com/fortran-lang/fpm/releases/download/v${PV}/${P}.F90 " LICENSE="MIT" SLOT="0" KEYWORDS="~amd64" IUSE="openmp doc test" RESTRICT="!test? ( test )" CDEPEND=" dev-libs/fortran-regex dev-libs/fortran-shlex dev-libs/jonquil:0/2 dev-libs/toml-f:0/4 dev-libs/M_CLI2 " RDEPEND=" ${CDEPEND} dev-vcs/git " DEPEND=" ${CDEPEND} doc? ( ${PYTHON_DEPS} $(python_gen_any_dep ' app-text/ford[${PYTHON_USEDEP}] ') ) " DOCS=( LICENSE PACKAGING.md README.md ) PATCHES="${FILESDIR}/${P}_fpm_toml.patch" BSDIR="build/bootstrap" # Bootstrap directory path pkg_pretend() { [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp } set_build_flags() { 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 BUILD_FLAGS=( --compiler "$(tc-getFC)" --flag "${FCFLAGS} ${OMPFLAG} -I/usr/include/fortran-regex \ -I/usr/include/fortran-shlex \ -I/usr/include/jonquil/modules \ -I/usr/include/M_CLI2 \ -I/usr/include/toml-f/modules" --c-compiler "$(tc-getCC)" --c-flag "${CFLAGS}" --cxx-compiler "$(tc-getCXX)" --cxx-flag "${CXXFLAGS}" --archiver "$(tc-getAR)" --link-flag "${LDFLAGS}" ) } pkg_setup() { [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp fortran-2_pkg_setup python-any-r1_pkg_setup set_build_flags } src_prepare() { default mkdir -p "${BSDIR}" || die cp "${DISTDIR}/${P}.F90" "${BSDIR}/" || die # Use favicon.png instead remote icon sed -i -e 's#https://fortran-lang.org/assets/img/fortran_logo_512x512.png#favicon.png#' docs.md || die } src_compile() { default # Build a bootstrap binary from the single source version "$(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 --verbose "${BUILD_FLAGS[@]}" || die if use doc ; then einfo "Build API documentation:" ford docs.md || die fi } src_test() { "${BSDIR}"/fpm test --verbose "${BUILD_FLAGS[@]}" || die } src_install() { # Set prefix and pass all used env flags to avoid recompiling with default values "${BSDIR}"/fpm install --prefix "${ED}/usr" "${BUILD_FLAGS[@]}" || die use doc && HTML_DOCS=( "${S}"/fpm-doc/. ) einstalldocs }