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/files/, dev-ada/gprbuild/
Date: Sat, 09 Jun 2018 19:08:22
Message-Id: 1528571288.3d9e0024cf577d70fcc7b8780460cc005d7b417a.tupone@gentoo
1 commit: 3d9e0024cf577d70fcc7b8780460cc005d7b417a
2 Author: Tupone Alfredo <tupone <AT> gentoo <DOT> org>
3 AuthorDate: Sat Jun 9 19:07:34 2018 +0000
4 Commit: Alfredo Tupone <tupone <AT> gentoo <DOT> org>
5 CommitDate: Sat Jun 9 19:08:08 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d9e0024
7
8 dev-ada/gprbuild: Version bump to dev-ada/gprbuild-2018
9
10 Package-Manager: Portage-2.3.24, Repoman-2.3.6
11
12 dev-ada/gprbuild/Manifest | 2 +
13 dev-ada/gprbuild/files/gprbuild-2018-gentoo.patch | 81 +++++++++++++++++++++
14 dev-ada/gprbuild/files/gprbuild-2018.xml | 85 +++++++++++++++++++++++
15 dev-ada/gprbuild/gprbuild-2018.ebuild | 84 ++++++++++++++++++++++
16 dev-ada/gprbuild/metadata.xml | 1 +
17 5 files changed, 253 insertions(+)
18
19 diff --git a/dev-ada/gprbuild/Manifest b/dev-ada/gprbuild/Manifest
20 index 215384713a4..75d4210b6e2 100644
21 --- a/dev-ada/gprbuild/Manifest
22 +++ b/dev-ada/gprbuild/Manifest
23 @@ -1,2 +1,4 @@
24 DIST gprbuild-gpl-2017-src.tar.gz 2454957 BLAKE2B 890e5aa29e9f8fa8b140988ee8e5d6042640c34fe0877acde959de803bf690bb33c63b1c7e7db486f804882bddd77ab76ffbaa4dd27da327e21ed0376cadb99d SHA512 12f3682d64ce0718de4940c1e71a4380b20021805d88543842dbf3b5ce5d518c23a6b2d868565579baf81efa1d8cf05c7778253162f0df5d7adc0eb1865c9f88
25 +DIST gprbuild-gpl-2018-src.tar.gz 2479651 BLAKE2B b0e24f4d97f06fe84569f8f0284e1028fce8e4ae90cfd27ab31ada0988f4f1b37eca4868bc212a21d26fb1a0a7ba6f031062e16d9758ab211e2fee40e25077ab SHA512 d22c0133baa6a0b626a0c1d145b21865bd0699cd8155ca22727272b0f8988c78163410b432ae148e87099e931df19d51ea867981556c79cb1cceb25456333044
26 DIST xmlada-gpl-2017-src.tar.gz 1578393 BLAKE2B 7b4894040b6044e86c96cbd530ebda5c0cfc4ad0e2b472d46798a93f535aca0916b03385a3aef49bd4e59d508a9665c856360e9cab0a4f67b15091228b629d81 SHA512 371f6adc01550a4bb13204ec0404dc1165438db595f4346813e5a23a155de74c857c40c55adde173919c2fe35b3b91d78b235c9718ee86bc848e62ddfd7fa2b4
27 +DIST xmlada-gpl-2018-src.tar.gz 1582215 BLAKE2B 11012dab19f45507eeb5ce6ebec9a77ceb5dfb7749960922f0f48bb1b0409305fd43466a7af90b48ff0a0cf58612e8859274a92e0fe272b4e57a59b92a1725f1 SHA512 8970c4e68defad66625c1110554dadfc485fbbe42e832987593cf727e98f13dd87c90b84461187dbbe2b1051831e6e70f9f53d6a0cfc07451726d601b2856430
28
29 diff --git a/dev-ada/gprbuild/files/gprbuild-2018-gentoo.patch b/dev-ada/gprbuild/files/gprbuild-2018-gentoo.patch
30 new file mode 100644
31 index 00000000000..c5225d8d11f
32 --- /dev/null
33 +++ b/dev-ada/gprbuild/files/gprbuild-2018-gentoo.patch
34 @@ -0,0 +1,81 @@
35 +--- gprbuild-2017/gpr/gpr.gpr.old 2017-05-27 20:59:07.061135892 +0200
36 ++++ gprbuild-2017/gpr/gpr.gpr 2017-05-27 20:59:38.022638398 +0200
37 +@@ -67,6 +67,7 @@
38 + for Switches ("gpr*.ad?") use
39 + Compiler'Default_Switches ("Ada") & ("-g1");
40 + end case;
41 ++ for Driver ("C") use External ("CC", "gcc");
42 + end Compiler;
43 +
44 + end GPR;
45 +--- gprbuild-gpl-2017-src/gpr/src/gpr-names.ads.old 2017-11-19 13:09:18.947527738 +0100
46 ++++ gprbuild-gpl-2017-src/gpr/src/gpr-names.ads 2017-11-19 13:10:08.125654595 +0100
47 +@@ -27,6 +27,8 @@
48 + Name_Buffer : String (1 .. 1_000_000);
49 + Name_Len : Natural := 0;
50 +
51 ++ Last_Id : Name_Id := Name_Id'First;
52 ++
53 + procedure Get_Name_String (Id : Name_Id);
54 + procedure Get_Name_String (Id : Unit_Name_Type);
55 + procedure Get_Name_String (Id : File_Name_Type);
56 +--- gprbuild-gpl-2017-src/gpr/src/gpr-names.adb.old 2017-11-19 13:10:27.674316703 +0100
57 ++++ gprbuild-gpl-2017-src/gpr/src/gpr-names.adb 2017-11-19 13:14:38.360963627 +0100
58 +@@ -354,6 +354,8 @@
59 +
60 + Name_Chars.Append (ASCII.NUL);
61 +
62 ++ Last_Id := Name_Entries.Last;
63 ++
64 + return Name_Entries.Last;
65 + end Name_Enter;
66 +
67 +@@ -427,6 +429,8 @@
68 +
69 + Name_Chars.Append (ASCII.NUL);
70 +
71 ++ Last_Id := Name_Entries.Last;
72 ++
73 + return Name_Entries.Last;
74 + end Name_Find;
75 +
76 +--- gprbuild-gpl-2017-src/gpr/src/gpr-snames.adb.old 2017-11-19 13:12:41.592995718 +0100
77 ++++ gprbuild-gpl-2017-src/gpr/src/gpr-snames.adb 2017-11-19 13:16:31.980979696 +0100
78 +@@ -53,6 +53,10 @@
79 + return;
80 + end if;
81 +
82 ++ if Last_Id = Name_Id'First then
83 ++ Add_Name ("");
84 ++ end if;
85 ++
86 + Add_Name ("a");
87 + Add_Name ("b");
88 + Add_Name ("c");
89 +--- gprbuild-gpl-2017/src/gprlib.adb.old 2017-12-18 12:20:02.937317216 +0100
90 ++++ gprbuild-gpl-2017/src/gprlib.adb 2017-12-18 12:21:36.519604590 +0100
91 +@@ -263,7 +263,7 @@
92 +
93 + Driver_Name : Name_Id := No_Name;
94 +
95 +- Gnatbind_Name : String_Access := new String'("gnatbind");
96 ++ Gnatbind_Name : String_Access := new String'("@GNATBIND@");
97 +
98 + Compiler_Name : String_Access := new String'("gcc");
99 +
100 +@@ -2237,13 +2237,13 @@
101 + and then Line (Last - 2 .. Last) = "gcc"
102 + then
103 + Gnatbind_Name :=
104 +- new String'(Line (1 .. Last - 3) & "gnatbind");
105 ++ new String'(Line (1 .. Last - 3) & "@GNATBIND@");
106 +
107 + elsif Last > 7
108 + and then Line (Last - 6 .. Last) = "gcc.exe"
109 + then
110 + Gnatbind_Name :=
111 +- new String'(Line (1 .. Last - 7) & "gnatbind");
112 ++ new String'(Line (1 .. Last - 7) & "@GNATBIND@");
113 + end if;
114 + end if;
115 +
116
117 diff --git a/dev-ada/gprbuild/files/gprbuild-2018.xml b/dev-ada/gprbuild/files/gprbuild-2018.xml
118 new file mode 100644
119 index 00000000000..9e1e47b512e
120 --- /dev/null
121 +++ b/dev-ada/gprbuild/files/gprbuild-2018.xml
122 @@ -0,0 +1,85 @@
123 +<?xml version="1.0" ?>
124 +<gprconfig>
125 + <compiler_description>
126 + <name>GNAT-@VER@</name>
127 + <executable prefix="1">gnatls-@VER@</executable>
128 + <version>
129 + <external>${PREFIX}gnatls-@VER@ -v --version</external>
130 + <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
131 + </version>
132 + <languages>Ada</languages>
133 + <variable name="gcc_version">
134 + <external>${PREFIX}gcc-@VER@ -v</external>
135 + <grep regexp="^[-\w]*gcc \S+ (\S+)" group="1"></grep>
136 + </variable>
137 + <runtimes default="default,kernel,native">
138 + <directory group="default" >\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/adalib/</directory>
139 + <directory group="default" contents="^rts-">\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/ada_object_path</directory>
140 + <directory group="2" >\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/rts-(.*)/adalib/</directory>
141 + <directory group="1" >\.\./$TARGET/lib/gnat/(.*)/adalib/</directory>
142 + </runtimes>
143 + <target>
144 + <external>${PREFIX}gcc-@VER@ -dumpmachine</external>
145 + <grep regexp="[^\r\n]+"></grep>
146 + </target>
147 + </compiler_description>
148 +
149 + <configuration>
150 + <compilers>
151 + <compiler name="GNAT-@VER@" />
152 + </compilers>
153 + <config>
154 + package Compiler is
155 + for Driver ("Ada") use "${PATH(ada)}${PREFIX(ada)}gcc-@VER@";
156 + for Language_Kind ("Ada") use "unit_based";
157 + for Dependency_Kind ("Ada") use "ALI_File";
158 + for Leading_Required_Switches ("Ada") use
159 + ("-c", "-x", "ada", "-gnatA")
160 + &amp; Compiler'Leading_Required_Switches ("Ada");
161 + for Mapping_File_Switches ("Ada") use ("-gnatem=");
162 + for Mapping_Spec_Suffix ("Ada") use "%s";
163 + for Mapping_Body_Suffix ("Ada") use "%b";
164 + for Config_File_Switches ("Ada") use ("-gnatec=");
165 + for Include_Path_File ("Ada") use "ADA_PRJ_INCLUDE_FILE";
166 + for Multi_Unit_Switches ("Ada") use ("-gnateI");
167 + for Multi_Unit_Object_Separator ("Ada") use "~";
168 + for Config_Body_File_Name ("Ada") use
169 + "pragma Source_File_Name_Project (%u, Body_File_Name => ""%f"");";
170 + for Config_Spec_File_Name ("Ada") use
171 + "pragma Source_File_Name_Project (%u, Spec_File_Name => ""%f"");";
172 + for Config_Body_File_Name_Index ("Ada") use
173 + "pragma Source_File_Name_Project (%u, Body_File_Name => ""%f"", Index => %i);";
174 + for Config_Spec_File_Name_Index ("Ada") use
175 + "pragma Source_File_Name_Project (%u, Spec_File_Name => ""%f"", Index => %i);";
176 + for Config_Body_File_Name_Pattern ("Ada") use
177 + "pragma Source_File_Name_Project " &amp;
178 + " (Body_File_Name => ""*%b""," &amp;
179 + " Casing => %c," &amp;
180 + " Dot_Replacement => ""%d"");";
181 + for Config_Spec_File_Name_Pattern ("Ada") use
182 + "pragma Source_File_Name_Project " &amp;
183 + " (Spec_File_Name => ""*%s""," &amp;
184 + " Casing => %c," &amp;
185 + " Dot_Replacement => ""%d"");";
186 + for Config_File_Unique ("Ada") use "False";
187 + for PIC_Option ("Ada") use ("-fPIC");
188 + for Leading_Required_Switches ("Ada") use
189 + Compiler'Leading_Required_Switches ("Ada") &amp; ("--RTS=${RUNTIME_DIR(ada)}");
190 + end Compiler;
191 +
192 + package Binder is
193 + for Objects_Path_File ("Ada") use "ADA_PRJ_OBJECTS_FILE";
194 + for Driver ("Ada") use
195 + "${GPRCONFIG_PREFIX}libexec/gprbuild/gprbind";
196 + for Switches ("Ada") use ("--gnatbind_path=gnatbind-@VER@");
197 + for Required_Switches ("Ada") use
198 + Binder'Required_Switches ("Ada") &amp; ("--RTS=${RUNTIME_DIR(ada)}");
199 + end Binder;
200 +
201 + for Toolchain_Version ("Ada") use "GNAT ${VERSION(ada)}";
202 +
203 +for Runtime_Dir ("Ada") use "${RUNTIME_DIR(ada)}";
204 + for Library_Encapsulated_Supported use "true";
205 + </config>
206 + </configuration>
207 +</gprconfig>
208
209 diff --git a/dev-ada/gprbuild/gprbuild-2018.ebuild b/dev-ada/gprbuild/gprbuild-2018.ebuild
210 new file mode 100644
211 index 00000000000..2a10644bfbb
212 --- /dev/null
213 +++ b/dev-ada/gprbuild/gprbuild-2018.ebuild
214 @@ -0,0 +1,84 @@
215 +# Copyright 1999-2018 Gentoo Foundation
216 +# Distributed under the terms of the GNU General Public License v2
217 +
218 +EAPI=6
219 +
220 +inherit toolchain-funcs multiprocessing
221 +
222 +MYP=${PN}-gpl-${PV}
223 +
224 +DESCRIPTION="Multi-Language Management"
225 +HOMEPAGE="http://libre.adacore.com/"
226 +SRC_URI="
227 + http://mirrors.cdn.adacore.com/art/5b0819dfc7a447df26c27a68
228 + -> ${MYP}-src.tar.gz
229 + http://mirrors.cdn.adacore.com/art/5b0819dec7a447df26c27a40
230 + -> xmlada-gpl-${PV}-src.tar.gz"
231 +LICENSE="GPL-3"
232 +SLOT="0"
233 +KEYWORDS="~amd64 ~x86"
234 +IUSE="gnat_2016 gnat_2017 +gnat_2018"
235 +
236 +DEPEND="gnat_2016? ( dev-lang/gnat-gpl:4.9.4 )
237 + gnat_2017? ( dev-lang/gnat-gpl:6.3.0 )
238 + gnat_2018? ( dev-lang/gnat-gpl:7.3.0 )"
239 +RDEPEND="${DEPEND}"
240 +
241 +S="${WORKDIR}"/${MYP}-src
242 +
243 +REQUIRED_USE="^^ ( gnat_2016 gnat_2017 gnat_2018 )"
244 +PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
245 +
246 +src_prepare() {
247 + if use gnat_2016; then
248 + GCC_PV=4.9.4
249 + elif use gnat_2017; then
250 + GCC_PV=6.3.0
251 + else
252 + GCC_PV=7.3.0
253 + fi
254 + sed -e "s:@VER@:${GCC_PV}:g" "${FILESDIR}"/${P}.xml > gnat-${GCC_PV}.xml
255 + default
256 + sed -i \
257 + -e "s:@GNATBIND@:gnatbind-${GCC_PV}:g" \
258 + src/gprlib.adb \
259 + || die
260 +}
261 +
262 +src_configure() {
263 + emake prefix="${D}"usr setup
264 +}
265 +
266 +bin_progs="gprbuild gprconfig gprclean gprinstall gprname gprls"
267 +lib_progs="gprlib gprbind"
268 +
269 +src_compile() {
270 + GCC=${CHOST}-gcc-${GCC_PV}
271 + GNATMAKE=${CHOST}-gnatmake-${GCC_PV}
272 + local xmlada_src="../xmlada-gpl-${PV}-src"
273 + incflags="-Isrc -Igpr/src -I${xmlada_src}/sax -I${xmlada_src}/dom \
274 + -I${xmlada_src}/schema -I${xmlada_src}/unicode \
275 + -I${xmlada_src}/input_sources"
276 + ${GCC} -c ${CFLAGS} gpr/src/gpr_imports.c -o gpr_imports.o || die
277 + for bin in ${bin_progs}; do
278 + ${GNATMAKE} -j$(makeopts_jobs) ${incflags} $ADAFLAGS ${bin}-main \
279 + -o ${bin} -largs gpr_imports.o || die
280 + done
281 + for lib in $lib_progs; do
282 + ${GNATMAKE} -j$(makeopts_jobs) ${incflags} ${lib} $ADAFLAGS \
283 + -largs gpr_imports.o || die
284 + done
285 +}
286 +
287 +src_install() {
288 + dobin ${bin_progs}
289 + exeinto /usr/libexec/gprbuild
290 + doexe ${lib_progs}
291 + insinto /usr/share/gprconfig
292 + doins share/gprconfig/*
293 + insinto /usr/share/gpr
294 + doins share/_default.gpr
295 + insinto /usr/share/gprconfig
296 + doins gnat-${GCC_PV}.xml
297 + einstalldocs
298 +}
299
300 diff --git a/dev-ada/gprbuild/metadata.xml b/dev-ada/gprbuild/metadata.xml
301 index 4540dd6e09e..5a1bc58bccd 100644
302 --- a/dev-ada/gprbuild/metadata.xml
303 +++ b/dev-ada/gprbuild/metadata.xml
304 @@ -8,6 +8,7 @@
305 <use>
306 <flag name="gnat_2016">Compile with dev-lang/gnat-gpl-2016</flag>
307 <flag name="gnat_2017">Compile with dev-lang/gnat-gpl-2017</flag>
308 + <flag name="gnat_2018">Compile with dev-lang/gnat-gpl-2018</flag>
309 </use>
310 <longdescription lang="en">
311 GPRbuild is an advanced software tool designed to help automate the