summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTupone Alfredo <tupone@gentoo.org>2019-09-14 19:10:16 +0200
committerTupone Alfredo <tupone@gentoo.org>2019-09-14 19:10:16 +0200
commit16a5784a51534af0453811caa81181309aa4bf81 (patch)
treee5afd9e08ade7efd620d24505b9af34b32021032 /dev-ada
parenteclass/ada.eclass: Adding gnatchop wrapper (diff)
downloadgentoo-16a5784a51534af0453811caa81181309aa4bf81.tar.gz
gentoo-16a5784a51534af0453811caa81181309aa4bf81.tar.bz2
gentoo-16a5784a51534af0453811caa81181309aa4bf81.zip
dev-ada/gnatcoll: simplify using ada eclass
Package-Manager: Portage-2.3.69, Repoman-2.3.16 Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
Diffstat (limited to 'dev-ada')
-rw-r--r--dev-ada/gnatcoll/files/gnatcoll-2017-r1-gentoo.patch186
-rw-r--r--dev-ada/gnatcoll/gnatcoll-2017-r1.ebuild129
2 files changed, 315 insertions, 0 deletions
diff --git a/dev-ada/gnatcoll/files/gnatcoll-2017-r1-gentoo.patch b/dev-ada/gnatcoll/files/gnatcoll-2017-r1-gentoo.patch
new file mode 100644
index 000000000000..b8b92e4b7378
--- /dev/null
+++ b/dev-ada/gnatcoll/files/gnatcoll-2017-r1-gentoo.patch
@@ -0,0 +1,186 @@
+--- a/Makefile 2017-01-20 19:39:07.131398270 +0100
++++ b/Makefile 2017-01-20 19:42:30.088728844 +0100
+@@ -43,18 +43,18 @@
+
+ # Build either type of library. The argument (%) is the type of library to build
+
+-GPRBLD_OPTS=-p -m -j${PROCESSORS} -XLIBRARY_TYPE=$(@F) -XGnatcoll_Build=${Gnatcoll_Build} -XXMLADA_BUILD=$(@F)
++GPRBLD_OPTS=-p -m -j${PROCESSORS} -XGPR_BUILD=$(@F) -XLIBRARY_TYPE=$(@F) -XGnatcoll_Build=${Gnatcoll_Build} -XXMLADA_BUILD=$(@F)
+
+ build_library_type/%: generate_sources
+ @${RM} src/gnatcoll-atomic.adb
+
+ @echo "====== Building $(@F) libraries ======"
+- ${GPRBUILD} ${GPRBLD_OPTS} -Pgnatcoll_full
++ ${GPRBUILD} ${GPRBLD_OPTS} -Pgnatcoll_full -v -cargs ${ADAFLAGS}
+
+ @# Need to build libgnatcoll_gtk separately, because its project files
+ @# requires gtkada.gpr, which might not exist on the machine.
+ ifeq (${WITH_GTK},yes)
+- ${GPRBUILD} ${GPRBLD_OPTS} -Psrc/gnatcoll_gtk
++ ${GPRBUILD} ${GPRBLD_OPTS} -Psrc/gnatcoll_gtk -v -cargs ${ADAFLAGS}
+ endif
+
+ build_tools/%: build_library_type/%
+@@ -63,13 +63,14 @@
+ @# They are not build as part of the above because only the Main from
+ @# gnatcoll_full.gpr are build. We could use aggregate projects to
+ @# speed things up.
+- ${GPRBUILD} ${GPRBLD_OPTS} -q -Psrc/gnatcoll_tools
++ ${GPRBUILD} ${GPRBLD_OPTS} -q -Psrc/gnatcoll_tools -v -cargs ${ADAFLAGS}
+
+ #######################################################################
+ # install
+
+ GPRINST_OPTS=-p -f --prefix=${prefix} --install-name=gnatcoll \
+ --exec-subdir=${bindir} --project-subdir=lib/gnat -XXMLADA_BUILD=$(@F) \
++ -XGPR_BUILD=$(@F) \
+ --build-var=LIBRARY_TYPE --build-name=$(@F) -XLIBRARY_TYPE=$(@F)
+
+ install-clean:
+--- a/gnatcoll_shared.gpr.in 2017-01-20 19:50:03.222808656 +0100
++++ b/gnatcoll_shared.gpr.in 2017-01-20 19:50:28.200399274 +0100
+@@ -13,7 +13,7 @@
+
+ type Yes_No is ("yes", "no");
+ Gtk : Yes_No := External ("GTK", "@WITH_GTK@");
+- Python : Yes_No := External ("PYTHON", "@WITH_PYTHON@");
++ Python : Yes_No := "@WITH_PYTHON@";
+ Syslog : Yes_No := External ("SYSLOG", "@WITH_SYSLOG@");
+ Postgres : Yes_No := External ("POSTGRES", "@WITH_POSTGRES@");
+ type Sqlite_Inclusion is ("yes", "no", "embedded");
+--- a/testsuite/json/__init__.py 2017-04-24 17:52:34.158513249 +0200
++++ b/testsuite/json/__init__.py 2017-04-24 17:52:52.636207017 +0200
+@@ -21,7 +21,7 @@
+ @requires_not_aix # Storage_Error on that machine
+ @chdir("MB28-001")
+ def test_MB28_001(self):
+- self.runexec(["python", "make_json.py"])
++ self.runexec(["python2.7", "make_json.py"])
+ self.gprbuild()
+ self.runexec("json_stack_test", "test.out")
+
+--- a/testsuite/projects/__init__.py 2017-04-24 19:10:30.465246199 +0200
++++ b/testsuite/projects/__init__.py 2017-04-24 19:10:42.768035080 +0200
+@@ -105,25 +105,6 @@
+ self.gprbuild("default.gpr")
+ self.runexec("main", "")
+
+- @support.requires_not_windows
+- @chdir("N918-040")
+- def test_bareboard(self):
+- self.create_fake_bb_compiler('install', 'arm-eabi', '6.1.0w', '3.4.6')
+-
+- # Make sure auto.cgpr is not deleted on exit
+- try:
+- os.unlink('auto.cgpr')
+- except:
+- pass
+- self.gprbuild('main_prj', switches=['--autoconf=auto.cgpr'])
+- m = re.search('for Target use "(.*?)"', open('auto.cgpr').read())
+- target = m.group(1)
+-
+- def customFilter(actual):
+- return actual.replace(target, "<native>")
+-
+- self.runexec(['sh', 'test.sh'], 'test.out', customFilter=customFilter)
+-
+ @chdir("NB12-045")
+ def test_NB12_045(self):
+ # Test registering attribute in unknown package
+--- a/src/tools/gnatcoll_db2ada.adb 2017-04-24 21:36:09.193973179 +0200
++++ b/src/tools/gnatcoll_db2ada.adb 2017-04-24 21:36:16.029858932 +0200
+@@ -211,7 +211,7 @@
+
+ declare
+ Output : constant String := Get_Command_Output
+- (Command => "python",
++ (Command => "python2.7",
+ Arguments => Args,
+ Input => "",
+ Status => Status'Access,
+--- a/src/gnatcoll-projects.ads 2017-11-25 14:50:06.919939453 +0100
++++ b/src/gnatcoll-projects.ads 2017-11-25 14:50:38.932387204 +0100
+@@ -1917,7 +1917,8 @@
+ Predefined_Source_Files : GNATCOLL.VFS.File_Array_Access;
+ -- The list of source files in Predefined_Source_Path
+
+- Default_Gnatls : GNAT.Strings.String_Access := new String'("gnatls");
++ Default_Gnatls : GNAT.Strings.String_Access :=
++ new String'("@GNATLS@");
+ -- The default gnatls command to run.
+
+ Xrefs_Subdir : GNAT.Strings.String_Access;
+--- a/src/tools/gnatinspect.adb 2017-11-25 14:52:47.282170250 +0100
++++ b/src/tools/gnatinspect.adb 2017-11-25 14:52:57.691990254 +0100
+@@ -642,7 +642,7 @@
+ GNAT_Version : GNAT.Strings.String_Access;
+ begin
+ Env.Set_Path_From_Gnatls
+- (Gnatls => "gnatls",
++ (Gnatls => "@GNATLS@",
+ GNAT_Version => GNAT_Version,
+ Errors => Local_On_Error'Unrestricted_Access);
+ Free (GNAT_Version);
+--- a/src/gnatcoll-projects.adb 2018-11-14 18:47:27.760365233 +0100
++++ b/src/gnatcoll-projects.adb 2018-11-14 19:10:43.961337201 +0100
+@@ -3273,9 +3273,9 @@
+ Status : out Status_Type;
+ Result : out GNATCOLL.VFS.File_Array_Access)
+ is
+- Mains_Str_List : String_List_Access;
++ Mains_Str_List : String_Vectors.Vector;
+ Closure_Status : GPR.Util.Status_Type;
+- Closures_List : String_List_Access;
++ Closures_List : String_Vectors.Vector;
+ begin
+ Trace (Me, "Get_Closures");
+
+@@ -3287,25 +3287,18 @@
+ return;
+ end if;
+
+- Mains_Str_List := new String_List (Mains'First .. Mains'Last);
+ for I in Mains'Range loop
+- Mains_Str_List (I) := new String'(Mains (I).Display_Base_Name);
++ Mains_Str_List.Append (Mains (I).Display_Base_Name);
+ end loop;
+
+ GPR.Util.Get_Closures
+ (Project.Get_View, Project.Tree_View,
+- Mains => Mains_Str_List.all,
++ Mains => Mains_Str_List,
+ All_Projects => All_Projects,
+ Include_Externally_Built => Include_Externally_Built,
+ Status => Closure_Status,
+ Result => Closures_List);
+
+- -- Freeing temporary list of mains.
+- for I in Mains_Str_List'Range loop
+- Free (Mains_Str_List (I));
+- end loop;
+- Free (Mains_Str_List);
+-
+ case Closure_Status is
+ when Success =>
+ Status := Success;
+@@ -3321,17 +3314,10 @@
+ end case;
+
+ if Closure_Status in Success | Incomplete_Closure then
+- for I in Closures_List'Range loop
+- Append (Result, Create (+Closures_List (I).all));
++ for Closure of Closures_List loop
++ Append (Result, Create (+Closure));
+ end loop;
+ end if;
+-
+- -- Freeing temporary list of closures.
+- for I in Closures_List'Range loop
+- Free (Closures_List (I));
+- end loop;
+- Free (Closures_List);
+-
+ end Get_Closures;
+
+ ----------------
diff --git a/dev-ada/gnatcoll/gnatcoll-2017-r1.ebuild b/dev-ada/gnatcoll/gnatcoll-2017-r1.ebuild
new file mode 100644
index 000000000000..ae3680e4cccf
--- /dev/null
+++ b/dev-ada/gnatcoll/gnatcoll-2017-r1.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+ADA_COMPAT=( gnat_201{6,7} )
+inherit ada multilib multiprocessing autotools python-single-r1
+
+MYP=${PN}-gpl-${PV}
+
+DESCRIPTION="GNAT Component Collection"
+HOMEPAGE="http://libre.adacore.com"
+SRC_URI="http://mirrors.cdn.adacore.com/art/591c45e2c7a447af2deed016
+ -> ${MYP}-src.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gmp gtk iconv postgres pygobject projects readline
+ +shared sqlite static-libs syslog tools"
+
+RDEPEND="${ADA_DEPS}
+ ${PYTHON_DEPS}
+ gmp? ( dev-libs/gmp:* )
+ gtk? (
+ dev-ada/gtkada[${ADA_USEDEP},shared?,static-libs?]
+ dev-libs/atk
+ dev-libs/glib
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:3
+ x11-libs/pango
+ )
+ pygobject? ( dev-python/pygobject:3[${PYTHON_USEDEP}] )
+ postgres? ( dev-db/postgresql:* )
+ sqlite? ( dev-db/sqlite )
+ projects? (
+ >=dev-ada/libgpr-2018[${ADA_USEDEP},shared?,static-libs?]
+ dev-ada/xmlada[shared?,static-libs?]
+ )
+ !dev-ada/gnatcoll-core
+ !dev-ada/gnatcoll-bindings
+ !dev-ada/gnatcoll-db"
+DEPEND="${RDEPEND}
+ dev-ada/gprbuild[${ADA_USEDEP}]"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ tools? ( static-libs )
+ pygobject? ( gtk )
+ ${ADA_REQUIRED_USE}"
+
+S="${WORKDIR}"/${MYP}-src
+
+PATCHES=( "${FILESDIR}"/${P}-r1-gentoo.patch )
+
+src_prepare() {
+ default
+ mv configure.{in,ac} || die
+ sed -i \
+ -e "s:@GNATLS@:${GNATLS}:g" \
+ src/gnatcoll-projects.ads \
+ src/tools/gnatinspect.adb \
+ || die
+ eautoreconf
+}
+
+src_configure() {
+ if use sqlite; then
+ myConf="--with-sqlite=$(get_libdir)"
+ else
+ myConf="--without-sqlite"
+ fi
+ if use gtk ; then
+ myConf="$myConf --with-gtk=3.0"
+ else
+ myConf="$myConf --with-gtk=no"
+ fi
+ econf \
+ --with-python \
+ $(use_with gmp) \
+ $(use_with iconv) \
+ $(use_with postgres postgresql) \
+ $(use_enable projects) \
+ $(use_enable pygobject) \
+ $(use_enable readline gpl) \
+ $(use_enable readline) \
+ $(use_enable syslog) \
+ --with-python-exec=${EPYTHON} \
+ --enable-shared-python \
+ --disable-pygtk \
+ $myConf
+}
+
+src_compile() {
+ if use shared; then
+ emake PROCESSORS=$(makeopts_jobs) build_library_type/relocatable
+ fi
+ if use static-libs; then
+ emake PROCESSORS=$(makeopts_jobs) build_library_type/static
+ fi
+ if use tools; then
+ emake PROCESSORS=$(makeopts_jobs) build_tools/static
+ fi
+ python_fix_shebang .
+}
+
+src_install() {
+ if use shared; then
+ emake prefix="${D}usr" install_library_type/relocatable
+ fi
+ if use static-libs; then
+ emake prefix="${D}usr" install_library_type/static
+ fi
+ if use tools; then
+ emake prefix="${D}usr" install_tools/static
+ fi
+ emake prefix="${D}usr" install_gps_plugin
+ einstalldocs
+}
+
+src_test() {
+ # The test suite is in
+ # To run you need to have the ada compiler available as gcc
+ # Even in this case there are still some problems
+ # Going into the testsuite directory and running
+ # ./run.py -v -v
+ # run here (having enabled most USE flags)
+ true
+}