Gentoo Archives: gentoo-commits

From: Alfredo Tupone <tupone@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-ada/gprbuild/, dev-ada/gprbuild/files/
Date: Sun, 14 Oct 2018 18:52:21
Message-Id: 1539543121.41f88706dedf15129fff2b8fbd661cc529a0884f.tupone@gentoo
1 commit: 41f88706dedf15129fff2b8fbd661cc529a0884f
2 Author: Tupone Alfredo <tupone <AT> gentoo <DOT> org>
3 AuthorDate: Sun Oct 14 18:52:01 2018 +0000
4 Commit: Alfredo Tupone <tupone <AT> gentoo <DOT> org>
5 CommitDate: Sun Oct 14 18:52:01 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=41f88706
7
8 dev-ada/gprbuild: C files compiled only with gnat provided compiler
9
10 Signed-off-by: Alfredo Tupone <tupone <AT> gentoo.org>
11 Package-Manager: Portage-2.3.49, Repoman-2.3.11
12
13 dev-ada/gprbuild/files/gprbuild-2018.xml | 93 ++++++++++++++++++++++++++++++++
14 dev-ada/gprbuild/gprbuild-2018-r1.ebuild | 89 ++++++++++++++++++++++++++++++
15 2 files changed, 182 insertions(+)
16
17 diff --git a/dev-ada/gprbuild/files/gprbuild-2018.xml b/dev-ada/gprbuild/files/gprbuild-2018.xml
18 new file mode 100644
19 index 00000000000..56c4f896919
20 --- /dev/null
21 +++ b/dev-ada/gprbuild/files/gprbuild-2018.xml
22 @@ -0,0 +1,93 @@
23 +<?xml version="1.0" ?>
24 +<gprconfig>
25 + <compiler_description>
26 + <name>GNAT-@VER@</name>
27 + <executable prefix="1">gnatls-@VER@</executable>
28 + <version>
29 + <external>${PREFIX}gnatls-@VER@ -v --version</external>
30 + <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
31 + </version>
32 + <languages>Ada</languages>
33 + <variable name="gcc_version">
34 + <external>${PREFIX}gcc-@VER@ -v</external>
35 + <grep regexp="^[-\w]*gcc \S+ (\S+)" group="1"></grep>
36 + </variable>
37 + <runtimes default="default,kernel,native">
38 + <directory group="default" >\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/adalib/</directory>
39 + <directory group="default" contents="^rts-">\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/ada_object_path</directory>
40 + <directory group="2" >\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/rts-(.*)/adalib/</directory>
41 + <directory group="1" >\.\./$TARGET/lib/gnat/(.*)/adalib/</directory>
42 + </runtimes>
43 + <target>
44 + <external>${PREFIX}gcc-@VER@ -dumpmachine</external>
45 + <grep regexp="[^\r\n]+"></grep>
46 + </target>
47 + </compiler_description>
48 +
49 + <configuration>
50 + <compilers>
51 + <compiler name="GNAT-@VER@" />
52 + </compilers>
53 + <config>
54 + package Compiler is
55 + for Driver ("Ada") use "${PATH(ada)}${PREFIX(ada)}gcc-@VER@";
56 + for Language_Kind ("Ada") use "unit_based";
57 + for Dependency_Kind ("Ada") use "ALI_File";
58 + for Leading_Required_Switches ("Ada") use
59 + ("-c", "-x", "ada", "-gnatA")
60 + &amp; Compiler'Leading_Required_Switches ("Ada");
61 + for Mapping_File_Switches ("Ada") use ("-gnatem=");
62 + for Mapping_Spec_Suffix ("Ada") use "%s";
63 + for Mapping_Body_Suffix ("Ada") use "%b";
64 + for Config_File_Switches ("Ada") use ("-gnatec=");
65 + for Include_Path_File ("Ada") use "ADA_PRJ_INCLUDE_FILE";
66 + for Multi_Unit_Switches ("Ada") use ("-gnateI");
67 + for Multi_Unit_Object_Separator ("Ada") use "~";
68 + for Config_Body_File_Name ("Ada") use
69 + "pragma Source_File_Name_Project (%u, Body_File_Name => ""%f"");";
70 + for Config_Spec_File_Name ("Ada") use
71 + "pragma Source_File_Name_Project (%u, Spec_File_Name => ""%f"");";
72 + for Config_Body_File_Name_Index ("Ada") use
73 + "pragma Source_File_Name_Project (%u, Body_File_Name => ""%f"", Index => %i);";
74 + for Config_Spec_File_Name_Index ("Ada") use
75 + "pragma Source_File_Name_Project (%u, Spec_File_Name => ""%f"", Index => %i);";
76 + for Config_Body_File_Name_Pattern ("Ada") use
77 + "pragma Source_File_Name_Project " &amp;
78 + " (Body_File_Name => ""*%b""," &amp;
79 + " Casing => %c," &amp;
80 + " Dot_Replacement => ""%d"");";
81 + for Config_Spec_File_Name_Pattern ("Ada") use
82 + "pragma Source_File_Name_Project " &amp;
83 + " (Spec_File_Name => ""*%s""," &amp;
84 + " Casing => %c," &amp;
85 + " Dot_Replacement => ""%d"");";
86 + for Config_File_Unique ("Ada") use "False";
87 + for PIC_Option ("Ada") use ("-fPIC");
88 + for Leading_Required_Switches ("Ada") use
89 + Compiler'Leading_Required_Switches ("Ada") &amp; ("--RTS=${RUNTIME_DIR(ada)}");
90 + for Driver ("C") use "${PATH(c)}${PREFIX(c)}gcc-@VER@";
91 + for Leading_Required_Switches ("C") use
92 + ("-c", "-x", "c") &amp; Compiler'Leading_Required_Switches ("C");
93 + for Include_Switches_Via_Spec ("C") use ("cc1", "-I");
94 + for Max_Command_Line_Length use "8192";
95 + for Response_File_Format ("C") use "GCC_GNU";
96 + for Dependency_Switches ("C") use ("-MMD", "-MF", "");
97 + for PIC_Option ("C") use ("-fPIC");
98 + end Compiler;
99 +
100 + package Binder is
101 + for Objects_Path_File ("Ada") use "ADA_PRJ_OBJECTS_FILE";
102 + for Driver ("Ada") use
103 + "${GPRCONFIG_PREFIX}libexec/gprbuild/gprbind";
104 + for Switches ("Ada") use ("--gnatbind_path=gnatbind-@VER@");
105 + for Required_Switches ("Ada") use
106 + Binder'Required_Switches ("Ada") &amp; ("--RTS=${RUNTIME_DIR(ada)}");
107 + end Binder;
108 +
109 + for Toolchain_Version ("Ada") use "GNAT ${VERSION(ada)}";
110 +
111 +for Runtime_Dir ("Ada") use "${RUNTIME_DIR(ada)}";
112 + for Library_Encapsulated_Supported use "true";
113 + </config>
114 + </configuration>
115 +</gprconfig>
116
117 diff --git a/dev-ada/gprbuild/gprbuild-2018-r1.ebuild b/dev-ada/gprbuild/gprbuild-2018-r1.ebuild
118 new file mode 100644
119 index 00000000000..3f325332e8e
120 --- /dev/null
121 +++ b/dev-ada/gprbuild/gprbuild-2018-r1.ebuild
122 @@ -0,0 +1,89 @@
123 +# Copyright 1999-2018 Gentoo Authors
124 +# Distributed under the terms of the GNU General Public License v2
125 +
126 +EAPI=6
127 +
128 +inherit toolchain-funcs multiprocessing
129 +
130 +MYP=${PN}-gpl-${PV}
131 +
132 +DESCRIPTION="Multi-Language Management"
133 +HOMEPAGE="http://libre.adacore.com/"
134 +SRC_URI="
135 + http://mirrors.cdn.adacore.com/art/5b0819dfc7a447df26c27a68
136 + -> ${MYP}-src.tar.gz
137 + http://mirrors.cdn.adacore.com/art/5b0819dec7a447df26c27a40
138 + -> xmlada-gpl-${PV}-src.tar.gz"
139 +LICENSE="GPL-3"
140 +SLOT="0"
141 +KEYWORDS="~amd64 ~x86"
142 +IUSE="gnat_2016 gnat_2017 +gnat_2018"
143 +
144 +DEPEND="gnat_2016? ( dev-lang/gnat-gpl:4.9.4 )
145 + gnat_2017? ( dev-lang/gnat-gpl:6.3.0 )
146 + gnat_2018? ( dev-lang/gnat-gpl:7.3.1 )"
147 +RDEPEND="${DEPEND}"
148 +
149 +S="${WORKDIR}"/${MYP}-src
150 +
151 +REQUIRED_USE="!gnat_2016 ^^ ( gnat_2017 gnat_2018 )"
152 +PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
153 +
154 +src_prepare() {
155 + if use gnat_2016; then
156 + GCC_PV=4.9.4
157 + elif use gnat_2017; then
158 + GCC_PV=6.3.0
159 + else
160 + GCC_PV=7.3.1
161 + fi
162 + sed -e "s:@VER@:${GCC_PV}:g" "${FILESDIR}"/${P}.xml > gnat-${GCC_PV}.xml
163 + rm share/gprconfig/c.xml || die
164 + default
165 + sed -i \
166 + -e "s:@GNATBIND@:gnatbind-${GCC_PV}:g" \
167 + src/gprlib.adb \
168 + || die
169 + sed -i \
170 + -e "s:\"-Wl,-r\":\"-r\":g" \
171 + share/gprconfig/linker.xml \
172 + || die
173 +}
174 +
175 +src_configure() {
176 + emake prefix="${D}"usr setup
177 +}
178 +
179 +bin_progs="gprbuild gprconfig gprclean gprinstall gprname gprls"
180 +lib_progs="gprlib gprbind"
181 +
182 +src_compile() {
183 + GCC=${CHOST}-gcc-${GCC_PV}
184 + GNATMAKE=${CHOST}-gnatmake-${GCC_PV}
185 + local xmlada_src="../xmlada-gpl-${PV}-src"
186 + incflags="-Isrc -Igpr/src -I${xmlada_src}/sax -I${xmlada_src}/dom \
187 + -I${xmlada_src}/schema -I${xmlada_src}/unicode \
188 + -I${xmlada_src}/input_sources"
189 + ${GCC} -c ${CFLAGS} gpr/src/gpr_imports.c -o gpr_imports.o || die
190 + for bin in ${bin_progs}; do
191 + ${GNATMAKE} -j$(makeopts_jobs) ${incflags} $ADAFLAGS ${bin}-main \
192 + -o ${bin} -largs gpr_imports.o || die
193 + done
194 + for lib in $lib_progs; do
195 + ${GNATMAKE} -j$(makeopts_jobs) ${incflags} ${lib} $ADAFLAGS \
196 + -largs gpr_imports.o || die
197 + done
198 +}
199 +
200 +src_install() {
201 + dobin ${bin_progs}
202 + exeinto /usr/libexec/gprbuild
203 + doexe ${lib_progs}
204 + insinto /usr/share/gprconfig
205 + doins share/gprconfig/*
206 + insinto /usr/share/gpr
207 + doins share/_default.gpr
208 + insinto /usr/share/gprconfig
209 + doins gnat-${GCC_PV}.xml
210 + einstalldocs
211 +}