Skip to content

Commit

Permalink
dev-ada/gpr: static-libs and static-pic control generation of .a files
Browse files Browse the repository at this point in the history
Closes: https://bugs.gentoo.org/902535
Signed-off-by: Alfredo Tupone <[email protected]>
  • Loading branch information
atupone committed May 22, 2023
1 parent 18ae023 commit 129ee4c
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 65 deletions.
65 changes: 0 additions & 65 deletions dev-ada/gpr/gpr-23.0.0-r2.ebuild

This file was deleted.

113 changes: 113 additions & 0 deletions dev-ada/gpr/gpr-23.0.0-r3.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Copyright 2022-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

ADA_COMPAT=( gnat_2021 gcc_12 )
PYTHON_COMPAT=( python3_{9,10,11} )

inherit python-any-r1 ada multiprocessing

DESCRIPTION="LibGPR2 - Parser for GPR Project files"
HOMEPAGE="https://github.com/AdaCore/gpr"
SRC_URI="https://github.com/AdaCore/${PN}/archive/refs/tags/v${PV}.tar.gz
-> ${P}.tar.gz"

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+shared static-libs static-pic"
REQUIRED_USE="|| ( shared static-libs static-pic )
${ADA_REQUIRED_USE}"

RDEPEND="${ADA_DEPS}
dev-ada/xmlada[${ADA_USEDEP}]
shared? ( dev-ada/xmlada[shared,static-pic] )
dev-ada/gnatcoll-core[${ADA_USEDEP}]
shared? ( dev-ada/gnatcoll-core[shared,static-pic] )
dev-ada/gnatcoll-bindings[${ADA_USEDEP},iconv,gmp]
shared? ( dev-ada/gnatcoll-bindings[shared,static-pic] )"

DEPEND="${RDEPEND}
dev-ada/gprconfig_kb[${ADA_USEDEP}]
dev-ada/gprbuild[${ADA_USEDEP}]"

BDEPEND="${PYTHON_DEPS}
$(python_gen_any_dep '
dev-ada/langkit[${PYTHON_USEDEP}]
')"

python_check_deps() {
python_has_version "dev-ada/langkit[${PYTHON_USEDEP}]"
}

src_configure() {
emake ENABLE_SHARED=$(usex shared) setup
}

src_compile() {
build() {
gprbuild -p -m -v -j$(makeopts_jobs) -XGPR2_BUILD=release \
-XLIBRARY_TYPE=$1 -XXMLADA_BUILD=$1 gpr2.gpr || die
}
mkdir -p .build/kb || die
gprbuild -p -P src/kb/collect_kb.gpr -XKB_BUILD_DIR=.build/kb \
--relocate-build-tree || die
.build/kb/collect_kb -o .build/kb/config.kb /usr/share/gprconfig || die
emake -C langkit setup DEST="${S}/.build/lkparser"
if use shared; then
build relocatable
fi
if use static-libs; then
build static
fi
if use static-pic; then
build static-pic
fi
if use static-libs; then
libtype='static'
elif use static-pic; then
libtype='static-pic'
elif use shared; then
libtype='relocatable'
fi

gprbuild -p -m -v -j$(makeopts_jobs) -XGPR2_BUILD=release \
-XLIBRARY_TYPE=${libtype} -XXMLADA_BUILD=${libtype} gpr2-tools.gpr \
|| die
gprbuild -p -m -v -j$(makeopts_jobs) -XGPR2_BUILD=release \
-XLIBRARY_TYPE=${libtype} -XXMLADA_BUILD=${libtype} \
-XLANGKIT_SUPPORT_BUILD=${libtype} gpr2-name.gpr || die
}

src_install() {
build() {
gprinstall -p -f -v -XGPR2_BUILD=release --prefix="${D}/usr" \
-XLIBRARY_TYPE=$1 -XXMLADA_BUILD=$1 --build-name=$1 \
--build-var=LIBRARY_TYPE \
--build-var=GPR2_LIBRARY_TYPE gpr2.gpr || die
}
if use shared; then
build relocatable
fi
if use static-libs; then
build static
fi
if use static-pic; then
build static-pic
fi
gprinstall -p -f -v -XGPR2_BUILD=release --prefix="${D}/usr" \
-XLIBRARY_TYPE=${libtype} -XXMLADA_BUILD=${libtype} \
--build-name=${libtype} --mode=usage gpr2-tools.gpr || die
gprinstall -p -f -v -XGPR2_BUILD=release --prefix='${D}/usr' \
-XLIBRARY_TYPE=${libtype} -XXMLADA_BUILD=${libtype} \
-XLANGKIT_SUPPORT_BUILD=${libtype} --build-name=${libtype} \
--mode=usage gpr2-name.gpr || die

einstalldocs

rm "${D}"/usr/bin/gprclean || die
rm "${D}"/usr/bin/gprconfig || die
rm "${D}"/usr/bin/gprinstall || die
rm "${D}"/usr/bin/gprls || die
}
1 change: 1 addition & 0 deletions dev-ada/gpr/metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
</maintainer>
<use>
<flag name="shared">Build shared library</flag>
<flag name="static-pic">Build static library with pic code</flag>
</use>
<upstream>
<remote-id type="github">AdaCore/gpr</remote-id>
Expand Down

0 comments on commit 129ee4c

Please sign in to comment.