Skip to content

Commit

Permalink
dev-ada/gps: Add GPS (IDE) to gentoo
Browse files Browse the repository at this point in the history
Package-Manager: Portage-2.3.13, Repoman-2.3.3
  • Loading branch information
atupone committed Nov 21, 2017
1 parent 4720540 commit 282d7dc
Show file tree
Hide file tree
Showing 4 changed files with 245 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-ada/gps/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DIST gps-gpl-2017-src.tar.gz 41216830 BLAKE2B 51ca89c38fa81888a9cf1831cf97f7e0ad72c444328a29063249a4fe72bbdc8357552d470872e9fbbeaf349ef0427b59fa41a0efb56200a07a9426343c731a57 SHA512 101ecef7f183de1da0c2b09d77f284a5e8c5ae56f34a897c8d471e79fe9a2832742608ff5251197ba2a52b5d9dfee6c6937fc22cd55f6d8f38359b070393cb64
165 changes: 165 additions & 0 deletions dev-ada/gps/files/gps-2017-gentoo.patch
Original file line number Diff line number Diff line change
@@ -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

66 changes: 66 additions & 0 deletions dev-ada/gps/gps-2017.ebuild
Original file line number Diff line number Diff line change
@@ -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}"
}
13 changes: 13 additions & 0 deletions dev-ada/gps/metadata.xml
Original file line number Diff line number Diff line change
@@ -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>

0 comments on commit 282d7dc

Please sign in to comment.