commit:     fb5e488c80d3794891f0fe6ecd562fca5dcf6bdf
Author:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 25 21:03:51 2025 +0000
Commit:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
CommitDate: Thu Dec 25 21:04:07 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fb5e488c

dev-ada/gpr: add 26.0.0

Signed-off-by: Alfredo Tupone <tupone <AT> gentoo.org>

 dev-ada/gpr/Manifest                     |   1 +
 dev-ada/gpr/files/gpr-26.0.0-gcc16.patch | 363 +++++++++++++++++++++++++++++++
 dev-ada/gpr/gpr-26.0.0.ebuild            | 139 ++++++++++++
 3 files changed, 503 insertions(+)

diff --git a/dev-ada/gpr/Manifest b/dev-ada/gpr/Manifest
index 98d3bfbd9226..d88d48a228a5 100644
--- a/dev-ada/gpr/Manifest
+++ b/dev-ada/gpr/Manifest
@@ -1,3 +1,4 @@
 DIST gpr-24.2.0-next.tar.gz 1524692 BLAKE2B 
0e395f7d913b5b6344bb2d89d7471971ea7fb382bcba8123bcbd3703371b145493ed17560f0b7602f8fa5e89fbbd1a5e24d93763fcf493832a332b9463e96e16
 SHA512 
4d824a2eddd74fca5b2f51336bc2b8e3a35fac4901ff41ac0d7704aa81474357e0733b96da0fe9d3a09a4b21885812bf29bdeb330025ae466089c9dbefcd8d51
+DIST gpr-26.0.0.tar.gz 1881523 BLAKE2B 
c4dbf58a0b1d9e5e0d483df7c93d6205d7a8287b0da191d4f8a9ff8cd19086789313d063686c772fa45ed6a574fd7474ccfd8e4ea4fd3d064ac87363a34db764
 SHA512 
ceb34ec18e7719f4fe533fcbaad5586fb6fd6e41e835821a64d41e5a09b8aa0f3e5a35a2ed027e3b1a2e5df7c2ceacfee507a48d0783a641f208c50b93c4f0bf
 DIST gpr2-with-gprconfig_kb-25.0.tgz 1772855 BLAKE2B 
f4bcde7f2ad951d00b7b03b2d49120c301836a2bc676de0c0f7c493573a03b15bc20a6fd7f8d3034a063f6227b47f54468efe14260de1bb52a1da6bc4d5b87d6
 SHA512 
70fe0fcf541f6d3d90a34cab1638bbc0283dcd765c000406e0cfb73bae1817b30ddfe73f3672247a97c6b6bfc41900bc96a4440ca0c660f9c2f7b9d3cc8f8dcf
 DIST gpr2-with-lkparser-24.0.tgz 2030278 BLAKE2B 
ae42fd876a08a654db2db919e6d777ba603d54d6db618e8b8dbdfcfd9313decad092e0a9feae09ca46ec324cd860eaffbb6fa670290d454414677ad7e4a61dc7
 SHA512 
eda3c693393763da31312733e2bc06e852b867a32b42da6afdddd623051a1d29f7243aabaef3ae50052b22686dce6db62d9823652ce516d79822e4215f4d87b1

diff --git a/dev-ada/gpr/files/gpr-26.0.0-gcc16.patch 
b/dev-ada/gpr/files/gpr-26.0.0-gcc16.patch
new file mode 100644
index 000000000000..0a94870e3e99
--- /dev/null
+++ b/dev-ada/gpr/files/gpr-26.0.0-gcc16.patch
@@ -0,0 +1,363 @@
+From 43bb629645c3f558bbba5e3cf4b5902dddae3a6a Mon Sep 17 00:00:00 2001
+From: Gary Dismukes <[email protected]>
+Date: Tue, 21 Oct 2025 00:28:41 +0000
+Subject: [PATCH] Updates to gpr2 sources to accommodate limited predefined
+ reference types
+
+Various reference types declared in gpr2 sources must be changed to be
+limited types due to their full types having components of reference types
+coming from the predefined container packages, which are now declared as
+limited types (as required by AI22-0082). Also, the associated reference
+functions's bodies are revised to avoid copying limited references within
+return statements.
+
+Note that these changes are being made in advance of merging the changes
+to the reference types in the predefined container generics in the GNAT
+library, but are believed to be compatible with the nonlimited reference
+types in the current library.
+
+Issue: eng/toolchain/gnat#1098
+---
+ src/build/gpr2-build-tree_db.adb        | 24 ++++++++++++++++++++----
+ src/build/gpr2-build-tree_db.ads        | 20 +++++++++++---------
+ src/build/gpr2-build-unit_info-list.adb |  5 +++--
+ src/build/gpr2-build-unit_info-list.ads |  5 +++--
+ src/lib/gpr2-log.adb                    |  4 ++--
+ src/lib/gpr2-log.ads                    |  9 +++++----
+ src/lib/gpr2-project-attribute-set.adb  |  6 ++++--
+ src/lib/gpr2-project-attribute-set.ads  | 12 +++++++-----
+ src/lib/gpr2-project-import-set.adb     |  3 ++-
+ src/lib/gpr2-project-import-set.ads     |  6 ++++--
+ 10 files changed, 61 insertions(+), 33 deletions(-)
+
+diff --git a/src/build/gpr2-build-tree_db.adb 
b/src/build/gpr2-build-tree_db.adb
+index 2cb71c052..dca5fa4b7 100644
+--- a/src/build/gpr2-build-tree_db.adb
++++ b/src/build/gpr2-build-tree_db.adb
+@@ -90,7 +90,8 @@ package body GPR2.Build.Tree_Db is
+    is
+       Ref : constant Action_Maps.Reference_Type := Self.Actions.Reference 
(Id);
+    begin
+-      return (Element => Ref.Element.all'Unchecked_Access, Ref => Ref);
++      return (Element => Ref.Element.all'Unchecked_Access,
++              Ref     => Self.Actions.Reference (Id));
+    end Action_Id_To_Reference;
+ 
+    ----------------------
+@@ -104,7 +105,8 @@ package body GPR2.Build.Tree_Db is
+       Ref : constant Action_Maps.Reference_Type :=
+               Iterator.Db.Actions.Reference (Pos.Pos);
+    begin
+-      return (Element => Ref.Element.all'Unchecked_Access, Ref => Ref);
++      return (Element => Ref.Element.all'Unchecked_Access,
++              Ref     => Iterator.Db.Actions.Reference (Pos.Pos));
+    end Action_Reference;
+ 
+    ----------------
+@@ -343,7 +345,8 @@ package body GPR2.Build.Tree_Db is
+       Ref : constant Action_Maps.Constant_Reference_Type :=
+               Iterator.Db.Actions.Constant_Reference (Pos.Pos);
+    begin
+-      return (Element => Ref.Element.all'Unchecked_Access, Ref => Ref);
++      return (Element => Ref.Element.all'Unchecked_Access,
++              Ref     => Iterator.Db.Actions.Constant_Reference (Pos.Pos));
+    end Constant_Action_Reference;
+ 
+    ---------------------------------
+@@ -368,7 +371,20 @@ package body GPR2.Build.Tree_Db is
+                when others          =>
+                   raise Internal_Error with "Wrong kind of cursor");
+    begin
+-      return (Element => Ref.Element.all'Unchecked_Access, Ref => Ref);
++      return (Element => Ref.Element.all'Unchecked_Access,
++              Ref     =>
++                (case Pos.Current is
++                 when Implicit_Inputs =>
++                    Iterator.Db.Implicit_Inputs.Constant_Reference
++                      (Pos.Map_Pos).Constant_Reference (Pos.Pos),
++                 when Explicit_Inputs =>
++                    Iterator.Db.Inputs.Constant_Reference
++                      (Pos.Map_Pos).Constant_Reference (Pos.Pos),
++                 when Outputs         =>
++                    Iterator.Db.Outputs.Constant_Reference
++                      (Pos.Map_Pos).Constant_Reference (Pos.Pos),
++                 when others          =>
++                    raise Program_Error with "Wrong kind of cursor"));
+    end Constant_Artifact_Reference;
+ 
+    ------------
+diff --git a/src/build/gpr2-build-tree_db.ads 
b/src/build/gpr2-build-tree_db.ads
+index 00a5da22a..3e9fe6dcb 100644
+--- a/src/build/gpr2-build-tree_db.ads
++++ b/src/build/gpr2-build-tree_db.ads
+@@ -166,8 +166,9 @@ package GPR2.Build.Tree_Db is
+      (List : Artifacts_List) return Artifact_Iterators.Forward_Iterator'Class;
+ 
+    type Constant_Artifact_Reference_Type
+-     (Element : not null access constant Artifacts.Object'Class) is private
+-     with Implicit_Dereference => Element;
++     (Element : not null access constant Artifacts.Object'Class) is
++     limited private
++       with Implicit_Dereference => Element;
+ 
+    function Constant_Artifact_Reference
+      (Iterator : aliased Artifacts_List;
+@@ -199,8 +200,8 @@ package GPR2.Build.Tree_Db is
+      (List : Actions_List) return Action_Iterators.Forward_Iterator'Class;
+ 
+    type Action_Reference_Type
+-     (Element : not null access Actions.Object'Class) is private
+-     with Implicit_Dereference => Element;
++     (Element : not null access Actions.Object'Class) is limited private
++       with Implicit_Dereference => Element;
+ 
+    function Action_Id_To_Reference
+      (Self : in out Object;
+@@ -212,8 +213,9 @@ package GPR2.Build.Tree_Db is
+       Pos      : Action_Cursor) return Action_Reference_Type;
+ 
+    type Constant_Action_Reference_Type
+-     (Element : not null access constant Actions.Object'Class) is private
+-     with Implicit_Dereference => Element;
++     (Element : not null access constant Actions.Object'Class) is
++     limited private
++       with Implicit_Dereference => Element;
+ 
+    function Constant_Action_Reference
+      (Iterator : aliased Actions_List;
+@@ -438,7 +440,7 @@ private
+ 
+    type Constant_Artifact_Reference_Type
+      (Element : not null access constant Artifacts.Object'Class)
+-   is record
++   is limited record
+       Ref : Artifact_Vectors.Constant_Reference_Type (Element);
+    end record;
+ 
+@@ -463,13 +465,13 @@ private
+ 
+    type Action_Reference_Type
+      (Element : not null access Actions.Object'Class)
+-   is record
++   is limited record
+       Ref : Action_Maps.Reference_Type (Element);
+    end record;
+ 
+    type Constant_Action_Reference_Type
+      (Element : not null access constant Actions.Object'Class)
+-   is record
++   is limited record
+       Ref : Action_Maps.Constant_Reference_Type (Element);
+    end record;
+ 
+diff --git a/src/build/gpr2-build-unit_info-list.adb 
b/src/build/gpr2-build-unit_info-list.adb
+index 69213b9bb..549523efa 100644
+--- a/src/build/gpr2-build-unit_info-list.adb
++++ b/src/build/gpr2-build-unit_info-list.adb
+@@ -29,7 +29,8 @@ package body GPR2.Build.Unit_Info.List is
+               Self.Units.Constant_Reference (Unit_Map.Cursor (Position));
+    begin
+       return (Element => Ref.Element.all'Unchecked_Access,
+-              Ref     => Ref);
++              Ref     => Self.Units.Constant_Reference
++                           (Unit_Map.Cursor (Position)));
+    end Constant_Reference;
+ 
+    function Constant_Reference
+@@ -140,7 +141,7 @@ package body GPR2.Build.Unit_Info.List is
+               Self.Units.Reference (Unit_Map.Cursor (Position));
+    begin
+       return (Element => Ref.Element.all'Unchecked_Access,
+-              Ref     => Ref);
++              Ref     => Self.Units.Reference (Unit_Map.Cursor (Position)));
+    end Reference;
+ 
+ end GPR2.Build.Unit_Info.List;
+diff --git a/src/build/gpr2-build-unit_info-list.ads 
b/src/build/gpr2-build-unit_info-list.ads
+index 210ad9dc5..8d0bc027a 100644
+--- a/src/build/gpr2-build-unit_info-list.ads
++++ b/src/build/gpr2-build-unit_info-list.ads
+@@ -56,7 +56,8 @@ package GPR2.Build.Unit_Info.List is
+       Index : Unit_Index) return Unit_Info.Object;
+    --  Get a single unit
+ 
+-   type Reference_Type (Element : not null access Unit_Info.Object) is private
++   type Reference_Type
++     (Element : not null access Unit_Info.Object) is limited private
+      with Implicit_Dereference => Element;
+ 
+    function Reference
+@@ -64,7 +65,7 @@ package GPR2.Build.Unit_Info.List is
+       Position : Cursor) return Reference_Type;
+ 
+    type Constant_Reference_Type
+-     (Element : not null access constant Unit_Info.Object) is private
++     (Element : not null access constant Unit_Info.Object) is limited private
+      with Implicit_Dereference => Element;
+ 
+    function Constant_Reference
+diff --git a/src/lib/gpr2-log.adb b/src/lib/gpr2-log.adb
+index 9711f6048..e66eafef6 100644
+--- a/src/lib/gpr2-log.adb
++++ b/src/lib/gpr2-log.adb
+@@ -93,7 +93,7 @@ package body GPR2.Log is
+    begin
+       return Constant_Reference_Type'
+         (Message => Ref.Element.all'Unrestricted_Access,
+-         Ref     => Ref);
++         Ref     => Message_Set.Constant_Reference (Self.Store, Position.P));
+    end Constant_Reference;
+ 
+    -----------
+@@ -256,7 +256,7 @@ package body GPR2.Log is
+    begin
+       return Reference_Type'
+         (Message => Ref.Element.all'Unrestricted_Access,
+-         Ref     => Ref);
++         Ref     => Message_Set.Reference (Self.Store, Position.P));
+    end Reference;
+ 
+    --------------
+diff --git a/src/lib/gpr2-log.ads b/src/lib/gpr2-log.ads
+index e4616aa55..63bed5c54 100644
+--- a/src/lib/gpr2-log.ads
++++ b/src/lib/gpr2-log.ads
+@@ -82,7 +82,8 @@ package GPR2.Log is
+    package Log_Iterator is new Ada.Iterator_Interfaces (Cursor, Has_Element);
+ 
+    type Constant_Reference_Type
+-     (Message : not null access constant GPR2.Message.Object) is private
++     (Message : not null access constant GPR2.Message.Object)
++   is limited private
+      with Implicit_Dereference => Message;
+ 
+    function Constant_Reference
+@@ -90,7 +91,7 @@ package GPR2.Log is
+       Position : Cursor) return Constant_Reference_Type;
+ 
+    type Reference_Type
+-     (Message : not null access GPR2.Message.Object) is private
++     (Message : not null access GPR2.Message.Object) is limited private
+      with Implicit_Dereference => Message;
+ 
+    function Reference
+@@ -130,7 +131,7 @@ private
+    end record;
+ 
+    type Constant_Reference_Type
+-     (Message : not null access constant GPR2.Message.Object) is record
++     (Message : not null access constant GPR2.Message.Object) is limited 
record
+       --  We need to keep the underlying reference so that it is not cleared
+       --  upon return of the getter, and so that the container has the proper
+       --  busy state
+@@ -138,7 +139,7 @@ private
+    end record;
+ 
+    type Reference_Type
+-     (Message : not null access GPR2.Message.Object) is record
++     (Message : not null access GPR2.Message.Object) is limited record
+       --  We need to keep the underlying reference so that it is not cleared
+       --  upon return of the getter, and so that the container has the proper
+       --  busy state
+diff --git a/src/lib/gpr2-project-attribute-set.adb 
b/src/lib/gpr2-project-attribute-set.adb
+index ca316eb4c..26b4b16bf 100644
+--- a/src/lib/gpr2-project-attribute-set.adb
++++ b/src/lib/gpr2-project-attribute-set.adb
+@@ -49,7 +49,8 @@ package body GPR2.Project.Attribute.Set is
+    begin
+       return Constant_Reference_Type'
+         (Attribute => Ref.Element.all'Unrestricted_Access,
+-         Ref       => Ref);
++         Ref       => Self.Attributes.Constant_Reference
++                        (Position.CM).Constant_Reference (Position.CA));
+    end Constant_Reference;
+ 
+    --------------
+@@ -419,7 +420,8 @@ package body GPR2.Project.Attribute.Set is
+    begin
+       return Reference_Type'
+         (Attribute => Ref.Element.all'Unrestricted_Access,
+-         Ref       => Ref);
++         Ref       => Self.Attributes.Reference (Position.CM).Reference
++                        (Position.CA));
+    end Reference;
+ 
+ end GPR2.Project.Attribute.Set;
+diff --git a/src/lib/gpr2-project-attribute-set.ads 
b/src/lib/gpr2-project-attribute-set.ads
+index bc22704db..28c5186df 100644
+--- a/src/lib/gpr2-project-attribute-set.ads
++++ b/src/lib/gpr2-project-attribute-set.ads
+@@ -92,12 +92,14 @@ package GPR2.Project.Attribute.Set is
+      new Ada.Iterator_Interfaces (Cursor, Has_Element);
+ 
+    type Constant_Reference_Type
+-     (Attribute : not null access constant Project.Attribute.Object) is 
private
++     (Attribute : not null access constant Project.Attribute.Object)
++   is limited private
+      with Implicit_Dereference => Attribute;
+ 
+    type Reference_Type
+-     (Attribute : not null access Project.Attribute.Object) is private
+-   with Implicit_Dereference => Attribute;
++     (Attribute : not null access Project.Attribute.Object)
++   is limited private
++     with Implicit_Dereference => Attribute;
+ 
+    function Constant_Reference
+      (Self     : aliased Object;
+@@ -160,7 +162,7 @@ private
+ 
+    type Constant_Reference_Type
+      (Attribute : not null access constant Project.Attribute.Object)
+-   is record
++   is limited record
+       --  We need to keep the underlying reference so that it is not cleared
+       --  upon return of the getter, and so that the container has the proper
+       --  busy state
+@@ -169,7 +171,7 @@ private
+ 
+    type Reference_Type
+      (Attribute : not null access Project.Attribute.Object)
+-   is record
++   is limited record
+       --  We need to keep the underlying reference so that it is not cleared
+       --  upon return of the getter, and so that the container has the proper
+       --  busy state
+diff --git a/src/lib/gpr2-project-import-set.adb 
b/src/lib/gpr2-project-import-set.adb
+index 55748c2b3..dc76b24c7 100644
+--- a/src/lib/gpr2-project-import-set.adb
++++ b/src/lib/gpr2-project-import-set.adb
+@@ -38,7 +38,8 @@ package body GPR2.Project.Import.Set is
+    begin
+       return Constant_Reference_Type'
+         (Import => Ref.Element.all'Unrestricted_Access,
+-         Ref    => Ref);
++         Ref    => Base_Name_Set.Constant_Reference
++                     (Self.Set, Position.Current));
+    end Constant_Reference;
+ 
+    --------------
+diff --git a/src/lib/gpr2-project-import-set.ads 
b/src/lib/gpr2-project-import-set.ads
+index 67dae8e03..978f74686 100644
+--- a/src/lib/gpr2-project-import-set.ads
++++ b/src/lib/gpr2-project-import-set.ads
+@@ -66,7 +66,8 @@ package GPR2.Project.Import.Set is
+      new Ada.Iterator_Interfaces (Cursor, Has_Element);
+ 
+    type Constant_Reference_Type
+-     (Import : not null access constant Project.Import.Object) is private
++     (Import : not null access constant Project.Import.Object)
++   is limited private
+      with Implicit_Dereference => Import;
+ 
+    function Constant_Reference
+@@ -93,7 +94,8 @@ private
+                   Cursor'(Current => Base_Name_Set.No_Element);
+ 
+    type Constant_Reference_Type
+-     (Import : not null access constant Project.Import.Object) is record
++     (Import : not null access constant Project.Import.Object)
++   is limited record
+       --  We need to keep the underlying reference so that it is not cleared
+       --  upon return of the getter, and so that the container has the proper
+       --  busy state

diff --git a/dev-ada/gpr/gpr-26.0.0.ebuild b/dev-ada/gpr/gpr-26.0.0.ebuild
new file mode 100644
index 000000000000..c9eed383d73b
--- /dev/null
+++ b/dev-ada/gpr/gpr-26.0.0.ebuild
@@ -0,0 +1,139 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ADA_COMPAT=( gcc_{14..16} )
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit ada python-any-r1 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/${PV}"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="static-libs static-pic test"
+REQUIRED_USE="${ADA_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+RDEPEND="${ADA_DEPS}
+       dev-ada/xmlada[${ADA_USEDEP},shared,static-libs?,static-pic?]
+       
>=dev-ada/gnatcoll-core-26[${ADA_USEDEP},shared,static-libs?,static-pic?]
+       
dev-ada/gnatcoll-bindings[${ADA_USEDEP},shared,static-libs?,static-pic?,iconv(+),gmp]
+"
+
+DEPEND="${RDEPEND}
+       dev-ada/gprconfig_kb[${ADA_USEDEP}]
+       dev-ada/gprbuild[${ADA_USEDEP}]"
+BDEPEND="test? (
+       $(python_gen_any_dep '
+               dev-ada/e3-testsuite[${PYTHON_USEDEP}]
+       ')
+       dev-ada/gnatmem
+)"
+
+PATCHES=( "${FILESDIR}"/${P}-gcc16.patch )
+
+python_check_deps() {
+       use test || return 0
+       python_has_version "dev-ada/e3-testsuite[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+       use test && python-any-r1_pkg_setup
+       ada_pkg_setup
+}
+
+src_prepare() {
+       default
+       cd testsuite/tests
+       rm -r \
+               abstract-importing-non-abstract aggregate ali_parser attribute \
+               autoconf build-actions build_db build_makefile_parser \
+               callgraph-install c-closure check-has-value check-mem \
+               check-shared-lib-import command_line config \
+               custom_attr_no_pack default-target disable_warnings 
display-version \
+               empty_attribute_support explicit-target executable-directory \
+               excluded_source_dirs externals-in-configuration-project \
+               ignore_source_sub_dirs installed_asm_object \
+               invalid-project invalid-project-2 invalid-trace-file kb \
+               library load-preinstalled \
+               multi-unit-3 nested-case nested-externals 
no-naming-package-in-config \
+               options package-extension package-renaming parent-var-visible \
+               parser-no-value prj-syntax-error process_manager runtime \
+               self-project-attribute source subdirs target-checks tools \
+               types-import unknown-var-config unit_filename_generator 
view_builder \
+               build_db_dag/actions_signature tooling/source_dirs || die
+}
+
+src_compile() {
+       local BUILD_ROOT=.build
+       local KB_BUILD_DIR=${BUILD_ROOT}/kb
+       mkdir -p ${KB_BUILD_DIR} || die
+       cp kb/gpr2-kb-embedded.ads ${KB_BUILD_DIR} || die
+       gprbuild -p -P kb/collect_kb.gpr -v -largs ${LDFLAGS} -cargs 
${ADAFLAGS} \
+               || die
+       .build/kb/collect_kb -o .build/kb /usr/share/gprconfig || die
+
+       build () {
+               gprbuild -j$(makeopts_jobs) -m -p -v -XLIBRARY_TYPE=$1 \
+                       -XGPR2_BUILD=release -XXMLADA_BUILD=$1 gpr2.gpr \
+                       -largs ${LDFLAGS} \
+                       -cargs ${ADAFLAGS} || die "gprbuild failed"
+       }
+       build relocatable
+       if use static-libs; then
+               build static
+       fi
+       if use static-pic; then
+               build static-pic
+       fi
+
+       gprbuild -p -m -v -j$(makeopts_jobs) -aP . -XGPR2_BUILD=release \
+               -XLIBRARY_TYPE=relocatable -XXMLADA_BUILD=relocatable 
tools/gpr2_tools.gpr \
+               -largs ${LDFLAGS} -cargs ${ADAFLAGS} || die
+}
+
+src_test() {
+       cd testsuite
+       ./testsuite.py |& grep -w FAIL && die
+}
+
+src_install() {
+       build () {
+               gprinstall -XLIBRARY_TYPE=$1 -f -p -v -XGPR2_BUILD=release \
+                       --prefix="${D}/usr" -XXMLADA_BUILD=$1 \
+                       --build-name=$1 --build-var=LIBRARY_TYPE \
+                       --build-var=GPR2_LIBRARY_TYPE gpr2.gpr || die
+       }
+       build relocatable
+       if use static-libs; then
+               build static
+       fi
+       if use static-pic; then
+               build static-pic
+       fi
+
+       gprinstall -p -f -v --prefix="${D}/usr" -XGPR2_BUILD=release \
+               -XLIBRARY_TYPE=relocatable -XXMLADA_BUILD=relocatable \
+               --build-name=relocatable --mode=usage tools/gpr2_tools.gpr || 
die
+
+       sed -i \
+               -e 's|"gpr2.build.view_tables.update_sources_list", ||g' \
+               -e 's|"gpr2.tree_internal.load_autoconf", ||g' \
+               "${D}"/usr/share/gpr/gpr2.gpr \
+               || die
+
+       einstalldocs
+
+       rm "${D}"/usr/bin/gprconfig || die
+       rm "${D}"/usr/bin/gprbuild || die
+       rm "${D}"/usr/bin/gprclean || die
+       rm "${D}"/usr/bin/gprinstall || die
+
+       rm -r "${D}"/usr/share/gpr/manifests || die
+}

Reply via email to