commit:     df124d65f1c4eb996e4bff76d9b22f60d49a275f
Author:     Tupone Alfredo <tupone <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 23 20:32:49 2017 +0000
Commit:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
CommitDate: Sat Dec 23 20:32:49 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=df124d65

dev-ada/langkit: Add dev-ada/langkit

Package-Manager: Portage-2.3.13, Repoman-2.3.3

 dev-ada/langkit/Manifest                        |  1 +
 dev-ada/langkit/files/langkit-2017-gentoo.patch | 36 ++++++++++++++++++++
 dev-ada/langkit/langkit-2017.ebuild             | 45 +++++++++++++++++++++++++
 dev-ada/langkit/metadata.xml                    | 18 ++++++++++
 4 files changed, 100 insertions(+)

diff --git a/dev-ada/langkit/Manifest b/dev-ada/langkit/Manifest
new file mode 100644
index 00000000000..e7ad949e03c
--- /dev/null
+++ b/dev-ada/langkit/Manifest
@@ -0,0 +1 @@
+DIST langkit-gps-src-2017.tar.gz 364589 BLAKE2B 
14d80e904ded20a73d65a5828157ea82672559b5bb47e465381989ad3a6e90f41bd0c6db0a5e4f7b7c532fd4f697f9bc8cb3163c6e61106d0d44da994b1c7b28
 SHA512 
1c86e60710e4def3d430372eed11bf1a27bf82e84c7b787c5a0be15229b6e5f786dbdf830a311423dd7539841de3076d370afc8b4c1b0cddd1bc379372dcdc95

diff --git a/dev-ada/langkit/files/langkit-2017-gentoo.patch 
b/dev-ada/langkit/files/langkit-2017-gentoo.patch
new file mode 100644
index 00000000000..0260d44c888
--- /dev/null
+++ b/dev-ada/langkit/files/langkit-2017-gentoo.patch
@@ -0,0 +1,36 @@
+--- langkit-gps-src/langkit/templates/project_file.mako.old    2017-07-11 
14:19:12.841221846 +0200
++++ langkit-gps-src/langkit/templates/project_file.mako        2017-07-11 
14:12:39.104981170 +0200
+@@ -82,9 +82,11 @@
+             for Default_Switches ("Ada") use
+                Common_Ada_Cargs & ("-g", "-O0", "-gnatwe", "-gnata");
+ 
+-            for Default_Switches ("C") use Common_C_Cargs & ("-g3", "-O0");
++            for Default_Switches ("C") use Common_C_Cargs &
++              ("-g3", "-O0", "-fPIC");
+ 
+-            for Switches ("quex_lexer.c") use Common_C_Cargs & ("-g0", "-O0");
++            for Switches ("quex_lexer.c") use Common_C_Cargs &
++              ("-g0", "-O0", "-fPIC");
+             --  This file is *huge* and the debugging information for it harms
+             --  Valgrind runs. We almost never have to debug this file so
+             --  this is acceptable.
+@@ -111,6 +111,7 @@
+                   --  ... and this prevents OOM on other platforms
+             end case;
+       end case;
++      for Driver ("C") use External ("GCC", "gcc");
+    end Compiler;
+ 
+    package Binder is
+--- langkit-gps-src/langkit/compile_context.py.old     2017-12-13 
22:12:38.689143125 +0100
++++ langkit-gps-src/langkit/compile_context.py 2017-12-13 22:13:02.446737994 
+0100
+@@ -1171,8 +1171,7 @@
+         # the Quex specification changed from last build.
+         if generate_lexer and self.cache.is_stale('quex_specification',
+                                                   quex_spec):
+-            quex_py_file = path.join(os.environ["QUEX_PATH"], "quex-exe.py")
+-            subprocess.check_call([sys.executable, quex_py_file, "-i",
++            subprocess.check_call(["quex", "-i",
+                                    quex_file,
+                                    "-o", "quex_lexer",
+                                    "--buffer-element-size", "4",

diff --git a/dev-ada/langkit/langkit-2017.ebuild 
b/dev-ada/langkit/langkit-2017.ebuild
new file mode 100644
index 00000000000..1d2558ae90d
--- /dev/null
+++ b/dev-ada/langkit/langkit-2017.ebuild
@@ -0,0 +1,45 @@
+# 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
+
+MYPN=${PN}-gps-src
+
+DESCRIPTION="A Python framework to generate language parsers"
+HOMEPAGE="https://www.adacore.com/community";
+SRC_URI="http://mirrors.cdn.adacore.com/art/591c45e2c7a447af2deed044
+       -> ${MYPN}-${PV}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="${PYTHON_DEPS}
+       dev-ada/gnatcoll[gnat_2017,iconv]
+       dev-python/mako
+       dev-python/pyyaml
+       dev-python/enum34
+       dev-python/funcy
+       dev-python/docutils
+       dev-python/quex"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}"/${MYPN}
+
+PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
+
+src_test() {
+       testsuite/testsuite.py | grep FAILED && die "Test failed"
+}
+
+src_install() {
+       default
+       python_domodule langkit
+       python_doscript scripts/create-project.py
+}

diff --git a/dev-ada/langkit/metadata.xml b/dev-ada/langkit/metadata.xml
new file mode 100644
index 00000000000..bfb9cb6484b
--- /dev/null
+++ b/dev-ada/langkit/metadata.xml
@@ -0,0 +1,18 @@
+<?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">
+               Langkit (nickname for language kit) is a tool whose purpose is 
to make
+               it easy to create syntactic and semantic analysis engines. 
Write a
+               language specification in our Python DSL and Langkit will 
generate for
+               you an Ada library with bindings for the C and Python 
programming
+               languages.
+               The generated library is meant to provide a basis to write 
tooling,
+               including tools working on potentially changing and incorrect 
code,
+               such as IDEs.
+       </longdescription>
+</pkgmetadata>

Reply via email to