commit:     282d7dccde2a231a6b08136a794567b794afd567
Author:     Tupone Alfredo <tupone <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 21 20:47:10 2017 +0000
Commit:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
CommitDate: Tue Nov 21 20:47:10 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=282d7dcc

dev-ada/gps: Add GPS (IDE) to gentoo

Package-Manager: Portage-2.3.13, Repoman-2.3.3

 dev-ada/gps/Manifest                    |   1 +
 dev-ada/gps/files/gps-2017-gentoo.patch | 165 ++++++++++++++++++++++++++++++++
 dev-ada/gps/gps-2017.ebuild             |  66 +++++++++++++
 dev-ada/gps/metadata.xml                |  13 +++
 4 files changed, 245 insertions(+)

diff --git a/dev-ada/gps/Manifest b/dev-ada/gps/Manifest
new file mode 100644
index 00000000000..4baa367cf94
--- /dev/null
+++ b/dev-ada/gps/Manifest
@@ -0,0 +1 @@
+DIST gps-gpl-2017-src.tar.gz 41216830 BLAKE2B 
51ca89c38fa81888a9cf1831cf97f7e0ad72c444328a29063249a4fe72bbdc8357552d470872e9fbbeaf349ef0427b59fa41a0efb56200a07a9426343c731a57
 SHA512 
101ecef7f183de1da0c2b09d77f284a5e8c5ae56f34a897c8d471e79fe9a2832742608ff5251197ba2a52b5d9dfee6c6937fc22cd55f6d8f38359b070393cb64

diff --git a/dev-ada/gps/files/gps-2017-gentoo.patch 
b/dev-ada/gps/files/gps-2017-gentoo.patch
new file mode 100644
index 00000000000..4fe39ea239f
--- /dev/null
+++ b/dev-ada/gps/files/gps-2017-gentoo.patch
@@ -0,0 +1,165 @@
+--- gps-9999/aclocal.m4.old    2017-05-13 21:59:20.129039064 +0200
++++ gps-9999/aclocal.m4        2017-05-13 22:02:12.637234659 +0200
+@@ -37,7 +37,7 @@
+   HAVE_GNAT_PROJECT_$1=yes
+ else
+   # Try with "gnatls", in case gprls was not available
+-  if AC_TRY_COMMAND([gnat ls -Pconftest.gpr system.ads > /dev/null 
2>conftest.out])
++  if AC_TRY_COMMAND([@GNAT@ ls -Pconftest.gpr system.ads > /dev/null 
2>conftest.out])
+   then
+     HAVE_GNAT_PROJECT_$1=yes
+   else
+@@ -156,7 +156,7 @@
+ 
+ AC_DEFUN(AM_PATH_GNAT,
+ [
+-   AC_PATH_PROG(GNATMAKE, gnatmake, no)
++   AC_PATH_PROG(GNATMAKE, @GNATMAKE@, no)
+ 
+    if test x$GNATMAKE = xno ; then
+       AC_MSG_ERROR(I could not find gnatmake. See the file 'INSTALL' for more 
details.)
+@@ -279,7 +279,7 @@
+     AC_MSG_RESULT($GTK_PREFIX $GLIB_PREFIX $ATK_PREFIX $PANGO_PREFIX 
$CAIRO_PREFIX)
+   fi
+ 
+-  AC_PATH_PROG(GNATDRV, gnat, no)
++  AC_PATH_PROG(GNATDRV, @GNAT@, no)
+   min_gtk_version=ifelse([$1], ,2.0.0,$1)
+   AC_MSG_CHECKING(for GtkAda - version >= $min_gtk_version)
+   GTKADA_PRJ=`$GNATDRV ls -vP1 -Pgtkada 2>&1 | grep gtkada.gpr | grep Parsing 
| cut -d'"' -f2 | head -1`
+--- gps-gps-17.0/templates_parser/templates_parser.gpr.old     2017-05-18 
21:34:42.892039427 +0200
++++ gps-gps-17.0/templates_parser/templates_parser.gpr 2017-05-18 
21:35:16.661512990 +0200
+@@ -55,7 +55,7 @@
+ 
+    end Naming;
+ 
+-   Common_Options := ("-gnat05");
++   Common_Options := ("-gnat05", "-fPIC");
+    --  Common options used for the Debug and Release modes
+ 
+    Debug_Options :=
+--- gps-gps-17.0/shared.gpr.in.old     2017-05-18 21:35:56.475892075 +0200
++++ gps-gps-17.0/shared.gpr.in 2017-05-18 21:36:24.972447550 +0200
+@@ -24,7 +24,7 @@
+    end IDE;
+ 
+    package Compiler is
+-      Common := ("-g", "-gnat12");
++      Common := ("-g", "-gnat12", "-fPIC");
+       Optimize := ();
+ 
+       case OS is
+@@ -83,6 +83,7 @@
+          when "false" =>
+             null;
+       end case;
++      for Driver use External ("CC", "gcc");
+    end Linker;
+ 
+ end Shared;
+--- gps-gps-17.0/common/common_with_xmlada.gpr.in.old  2017-05-18 
21:37:25.302506085 +0200
++++ gps-gps-17.0/common/common_with_xmlada.gpr.in      2017-05-18 
21:37:58.472988222 +0200
+@@ -13,7 +13,7 @@
+       for Switches ("Ada") use Shared.Compiler'Switches ("Ada");
+       for Switches ("C") use Shared.Compiler'Switches ("C");
+       for Switches ("test_htables.adb") use ("-g", "-O2", "-gnatwue");
+-      for Switches ("s-memory.adb") use ("-g", "-O2", "-gnatpg");
++      for Switches ("s-memory.adb") use ("-g", "-O2", "-gnatpg", "-fPIC");
+ 
+       No_Checks := ("-g", "-O2", "-gnat2012", "-gnatpn");
+ 
+--- gps-gps-17.0/common/common_no_xmlada.gpr.in.old    2017-05-18 
21:37:31.406410812 +0200
++++ gps-gps-17.0/common/common_no_xmlada.gpr.in        2017-05-18 
21:38:14.796733359 +0200
+@@ -12,7 +12,7 @@
+       for Switches ("Ada") use Shared.Compiler'Switches ("Ada");
+       for Switches ("C") use Shared.Compiler'Switches ("C");
+       for Switches ("test_htables.adb") use ("-g", "-O2", "-gnatwue");
+-      for Switches ("s-memory.adb") use ("-g", "-O2", "-gnatpg");
++      for Switches ("s-memory.adb") use ("-g", "-O2", "-gnatpg", "-fPIC");
+ 
+       No_Checks := ("-g", "-O2", "-gnat2012", "-gnatpn");
+ 
+--- gps-gps-17.0/widgets/widgets.gpr.old       2017-05-18 22:26:05.117847006 
+0200
++++ gps-gps-17.0/widgets/widgets.gpr   2017-05-18 22:21:01.646368091 +0200
+@@ -12,6 +12,7 @@
+    package Compiler extends Shared.Compiler is
+       for Switches ("C") use
+         Shared.Compiler'Switches ("C") & GnatColl_Gtk.Gtk_Include;
++      for Driver ("C") use External ("CC", "gcc");
+    end Compiler;
+ 
+    package IDE renames Shared.IDE;
+--- gps-gps-17.0/cli/Makefile.old      2017-05-19 08:07:44.591042479 +0200
++++ gps-gps-17.0/cli/Makefile  2017-05-19 08:08:50.086991123 +0200
+@@ -1,8 +1,9 @@
+ GPRBUILD=gprbuild
+ GPRCLEAN=gprclean
++GPRBUILD_FLAGS=0
+ 
+ all default:
+-      $(GPRBUILD) -p -Pcli
++      $(GPRBUILD) $(GPRBUILD_FLAGS) -p -Pcli
+ 
+ clean:
+       $(GPRCLEAN) -q -r -Pcli
+--- gps-gps-17.0/gps/gps.gpr.old       2017-05-19 09:24:19.438123599 +0200
++++ gps-gps-17.0/gps/gps.gpr   2017-05-19 09:24:58.639492518 +0200
+@@ -75,7 +75,7 @@
+       end case;
+       for Switches ("Ada") use Linker'Switches ("Ada")
+          & Shared.Linker'Switches ("Ada");
+-
++      for Driver use External ("CC", "gcc");
+       --  for Switches ("Ada") use ("-lgmem");
+       --  for Switches ("Ada") use ("-pg");
+    end Linker;
+--- gps-gps-17.0/testsuite/Makefile.old        2017-05-19 11:08:48.966913663 
+0200
++++ gps-gps-17.0/testsuite/Makefile    2017-05-19 11:06:17.245366714 +0200
+@@ -1,5 +1,6 @@
+ GPRBUILD=gprbuild
+ GPRCLEAN=gprclean
++GPRBUILD_FLAGS=
+ 
+ SYS := $(shell gcc -dumpmachine)
+ ifeq ($(OS),Windows_NT)
+@@ -14,7 +14,7 @@
+ endif
+ 
+ all default: package
+-      $(GPRBUILD) -P testsuite_drivers.gpr -m -XOS=${OS} -j0 
-XLIBRARY_TYPE=relocatable -XXMLADA_BUILD=relocatable
++      $(GPRBUILD) $(GPRBUILD_FLAGS) -P testsuite_drivers.gpr -m -XOS=${OS} 
-j0 -XLIBRARY_TYPE=relocatable -XXMLADA_BUILD=relocatable
+ 
+ package:
+       mkdir -p share/doc
+--- gps-gps-17.0/testsuite/testsuite_drivers.gpr.old   2017-05-19 
11:21:20.645705481 +0200
++++ gps-gps-17.0/testsuite/testsuite_drivers.gpr       2017-05-19 
11:15:42.163206405 +0200
+@@ -10,6 +10,10 @@
+    for Object_Dir use "obj";
+    for Exec_Dir use "bin";
+ 
++   package Compiler is
++      for Switches ("Ada") use ("-fPIC");
++   end Compiler;
++
+    package Builder is
+       for Switches ("Ada") use ("-gnat12", "-ws", "-g", "-j0", "-m", 
"-gnaty");
+    end Builder;
+--- gps-gps-17.0/Makefile.in.old       2017-05-19 11:49:47.172018411 +0200
++++ gps-gps-17.0/Makefile.in   2017-05-19 11:50:24.653412280 +0200
+@@ -10,7 +10,7 @@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_DATA    = @INSTALL_DATA@
+ GNATCOLL_INSTALL  = @GNATCOLL_INSTALL@
+-prefix          = @prefix@
++prefix          = $(DESTDIR)@prefix@
+ bindir          = $(prefix)/bin
+ sharedir        = $(prefix)/share
+ examplesdir     = $(prefix)/share/examples/gps
+--- gps-gps-17.0/docs/Makefile.in.old  2017-05-19 11:54:52.805076624 +0200
++++ gps-gps-17.0/docs/Makefile.in      2017-05-19 11:55:24.332566945 +0200
+@@ -1,4 +1,4 @@
+-prefix = @prefix@
++prefix = $(DESTDIR)@prefix@
+ docdir = $(prefix)/share/doc/gps
+ sharedir = $(prefix)/share/gps
+ 

diff --git a/dev-ada/gps/gps-2017.ebuild b/dev-ada/gps/gps-2017.ebuild
new file mode 100644
index 00000000000..a07971aa8bb
--- /dev/null
+++ b/dev-ada/gps/gps-2017.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+inherit python-single-r1 autotools
+
+MYP=${PN}-gpl-${PV}-src
+
+DESCRIPTION="The GNAT Programming Studio"
+HOMEPAGE="http://libre.adacore.com/tools/gps/";
+SRC_URI="http://mirrors.cdn.adacore.com/art/591c45e2c7a447af2deed03b
+       -> ${MYP}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND="${PYTHON_DEPS}
+       
>=dev-ada/gnatcoll-2017[gtk,iconv,projects,pygobject,shared,sqlite,tools]
+       >=dev-ada/gtkada-2017
+       dev-ada/libadalang
+       dev-libs/gobject-introspection
+       dev-libs/libffi
+       sys-devel/llvm:=
+       sys-devel/clang:=
+       x11-themes/adwaita-icon-theme
+       x11-themes/hicolor-icon-theme
+       dev-python/pep8[${PYTHON_USEDEP}]
+       dev-python/jedi[${PYTHON_USEDEP}]"
+
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}"/${MYP}
+
+PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
+
+pkg_setup() {
+       GCC=${ADA:-$(tc-getCC)}
+       GNATLS="${GCC/gcc/gnatls}"
+       GNAT="${GCC/gcc/gnat}"
+       GNATMAKE="${GCC/gcc/gnatmake}"
+       if [[ -z "$(type ${GNATLS} 2>/dev/null)" ]] ; then
+               eerror "You need a gcc compiler that provides the Ada Compiler:"
+               eerror "1) use gcc-config to select the right compiler or"
+               eerror "2) set ADA=gcc-6.3.0 in make.conf"
+               die "ada compiler not available"
+       fi
+       python-single-r1_pkg_setup
+}
+
+src_prepare() {
+       default
+       mv configure.{in,ac} || die
+       sed -i \
+               -e "s:@GNATMAKE@:${GNATMAKE}:g" \
+               -e "s:@GNAT@:${GNAT}:g" \
+               aclocal.m4 \
+               || die
+       eautoreconf
+}
+
+src_compile() {
+       emake GPRBUILD_FLAGS="-v ${MAKEOPTS}"
+}

diff --git a/dev-ada/gps/metadata.xml b/dev-ada/gps/metadata.xml
new file mode 100644
index 00000000000..eb9ac43cfff
--- /dev/null
+++ b/dev-ada/gps/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+               <name>Tupone Alfredo</name>
+       </maintainer>
+       <longdescription lang="en">
+               GPS is a lightweight, extensible IDE, intended to develop
+               high-integrity software in Ada and SPARK, with support for C 
and C++
+               as well.
+       </longdescription>
+</pkgmetadata>

Reply via email to