commit:     46ea9d6b8f435e53e09a1381ccc83c4afd904b75
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 28 13:36:49 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jan 28 13:36:59 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=46ea9d6b

dev-lang/crystal: respect LDFLAGS, new USE=debug for quick builds

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 dev-lang/crystal/crystal-0.20.5-r2.ebuild          | 93 ++++++++++++++++++++++
 .../crystal/files/crystal-0.20.5-LDFLAGS.patch     |  9 +++
 dev-lang/crystal/metadata.xml                      |  3 +
 3 files changed, 105 insertions(+)

diff --git a/dev-lang/crystal/crystal-0.20.5-r2.ebuild 
b/dev-lang/crystal/crystal-0.20.5-r2.ebuild
new file mode 100644
index 00000000..d550e2a
--- /dev/null
+++ b/dev-lang/crystal/crystal-0.20.5-r2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit multiprocessing toolchain-funcs
+
+BV=0.20.4-1
+BV_AMD64=${BV}-linux-x86_64
+BV_X86=${BV}-linux-i686
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="http://crystal-lang.org";
+SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> 
${P}.tar.gz
+       amd64? ( 
https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_AMD64}.tar.gz
 )
+       x86? ( 
https://github.com/crystal-lang/crystal/releases/download/${PV}/crystal-${BV_X86}.tar.gz
 )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug examples +xml +yaml"
+
+# dev-libs/boehm-gc[static-libs] dependency problem,  check the issue: 
https://github.com/manastech/crystal/issues/1382
+DEPEND="
+       >=sys-devel/llvm-3.9.0
+       dev-libs/boehm-gc[static-libs,threads]
+       dev-libs/libatomic_ops
+       dev-libs/libevent
+       dev-libs/libpcre
+       sys-libs/libunwind
+       dev-libs/pcl
+       dev-libs/gmp:0
+"
+RDEPEND="${DEPEND}
+       xml? ( dev-libs/libxml2 )
+       yaml? ( dev-libs/libyaml )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-AR.patch
+       "${FILESDIR}"/${P}-verbose.patch
+       "${FILESDIR}"/${P}-LDFLAGS.patch
+)
+
+src_compile() {
+       emake \
+               $(usex debug "" release=1) \
+               stats=1 \
+               threads=$(makeopts_jobs) \
+               verbose=1 \
+               \
+               CC=$(tc-getCC) \
+               CXX=$(tc-getCXX) \
+               AR=$(tc-getAR) \
+               \
+               PATH="${WORKDIR}"/${PN}-${BV}/bin:"${PATH}" \
+               CRYSTAL_PATH=src \
+               CRYSTAL_CONFIG_VERSION=${PV} \
+               CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+       use doc && emake doc
+}
+
+src_test() {
+       emake spec \
+               $(usex debug "" release=1) \
+               stats=1 \
+               threads=$(makeopts_jobs) \
+               verbose=1 \
+               \
+               CC=$(tc-getCC) \
+               CXX=$(tc-getCXX) \
+               AR=$(tc-getAR) \
+               \
+               CRYSTAL_PATH=src \
+               CRYSTAL_CONFIG_VERSION=${PV}
+}
+
+src_install() {
+       insinto /usr/$(get_libdir)/crystal
+       doins -r src/.
+       dobin .build/crystal
+
+       insinto /usr/share/zsh/site-functions
+       newins etc/completion.zsh _crystal
+
+       use examples && dodoc -r samples
+
+       if use doc ; then
+               docinto api
+               dodoc -r doc/.
+       fi
+}

diff --git a/dev-lang/crystal/files/crystal-0.20.5-LDFLAGS.patch 
b/dev-lang/crystal/files/crystal-0.20.5-LDFLAGS.patch
new file mode 100644
index 00000000..42970a8
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.20.5-LDFLAGS.patch
@@ -0,0 +1,9 @@
+diff --git a/Makefile b/Makefile
+index fa71479..d316bbc 100644
+--- a/Makefile
++++ b/Makefile
+@@ -24,3 +24,3 @@ SOURCES := $(shell find src -name '*.cr')
+ SPEC_SOURCES := $(shell find spec -name '*.cr')
+-FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if 
$(threads),--threads $(threads) )$(if $(debug),-d )$(if $(verbose),--verbose )
++FLAGS := $(if $(release),--release )$(if $(stats),--stats )$(if 
$(threads),--threads $(threads) )$(if $(debug),-d )$(if $(verbose),--verbose 
)$(if $(LDFLAGS),--link-flags="$(LDFLAGS)" )
+ VERBOSE := $(if $(verbose),-v )

diff --git a/dev-lang/crystal/metadata.xml b/dev-lang/crystal/metadata.xml
index e8be383..80b55be 100644
--- a/dev-lang/crystal/metadata.xml
+++ b/dev-lang/crystal/metadata.xml
@@ -19,6 +19,9 @@
                disallowing certain dynamic aspects of Ruby.
        </longdescription>
        <use>
+               <flag name="debug">
+                       Build each module as a separate object file. Speeds 
build up.
+               </flag>
                <flag name="yaml">
                        Use the <pkg>dev-libs/libyaml</pkg> library to enable 
Crystal yaml
                        module

Reply via email to