59749d8d9a7da9d9c3b3d5868a0a2087a2628d8f
[gentoo.git] / dev-ada / gprbuild / gprbuild-2019.ebuild
1 # Copyright 1999-2019 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 inherit toolchain-funcs multiprocessing
7
8 MYP=${P}-20190517-194D8-src
9 XMLADA=xmlada-${PV}-20190429-19B9D-src
10
11 DESCRIPTION="Multi-Language Management"
12 HOMEPAGE="http://libre.adacore.com/"
13 SRC_URI="
14         http://mirrors.cdn.adacore.com/art/5cdf8e8031e87a8f1d425093
15                 -> ${MYP}.tar.gz
16         http://mirrors.cdn.adacore.com/art/5cdf916831e87a8f1d4250b5
17                 -> ${XMLADA}.tar.gz"
18 LICENSE="GPL-3"
19 SLOT="0"
20 KEYWORDS="amd64 x86"
21 IUSE="gnat_2017 gnat_2018 +gnat_2019"
22
23 DEPEND="gnat_2017? ( dev-lang/gnat-gpl:6.3.0 )
24         gnat_2018? ( dev-lang/gnat-gpl:7.3.1 )
25         gnat_2019? ( dev-lang/gnat-gpl:8.3.1 )"
26 RDEPEND="${DEPEND}"
27
28 S="${WORKDIR}"/${MYP}
29
30 REQUIRED_USE="^^ ( gnat_2017 gnat_2018 gnat_2019 )"
31 PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
32
33 src_prepare() {
34         if use gnat_2017; then
35                 GCC_PV=6.3.0
36         elif use gnat_2018; then
37                 GCC_PV=7.3.1
38         else
39                 GCC_PV=8.3.1
40         fi
41         default
42         sed -i \
43                 -e "s:@VER@:${GCC_PV}:g" \
44                 share/gprconfig/compilers.xml \
45                 share/gprconfig/gnat.xml \
46                 share/gprconfig/c.xml \
47                 share/gprconfig/linker.xml \
48                 || die
49         sed -i \
50                 -e "s:@GNATBIND@:gnatbind-${GCC_PV}:g" \
51                 src/gprlib.adb \
52                 || die
53 }
54
55 src_configure() {
56         emake prefix="${D}"/usr setup
57 }
58
59 bin_progs="gprbuild gprconfig gprclean gprinstall gprname gprls"
60 lib_progs="gprlib gprbind"
61
62 src_compile() {
63         GCC=${CHOST}-gcc-${GCC_PV}
64         GNATMAKE=${CHOST}-gnatmake-${GCC_PV}
65         local xmlada_src="../${XMLADA}"
66         incflags="-Isrc -Igpr/src -I${xmlada_src}/sax -I${xmlada_src}/dom \
67                 -I${xmlada_src}/schema -I${xmlada_src}/unicode \
68                 -I${xmlada_src}/input_sources"
69         ${GCC} -c ${CFLAGS} gpr/src/gpr_imports.c -o gpr_imports.o || die
70         for bin in ${bin_progs}; do
71                 ${GNATMAKE} -j$(makeopts_jobs) ${incflags} $ADAFLAGS ${bin}-main \
72                         -o ${bin} -largs gpr_imports.o || die
73         done
74         for lib in $lib_progs; do
75                 ${GNATMAKE} -j$(makeopts_jobs) ${incflags} ${lib} $ADAFLAGS \
76                         -largs gpr_imports.o || die
77         done
78 }
79
80 src_install() {
81         dobin ${bin_progs}
82         exeinto /usr/libexec/gprbuild
83         doexe ${lib_progs}
84         insinto /usr/share/gprconfig
85         doins share/gprconfig/*
86         insinto /usr/share/gpr
87         doins share/_default.gpr
88         einstalldocs
89 }