summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2017-10-10 09:50:54 +0000
committerSergei Trofimovich <slyfox@gentoo.org>2017-10-10 09:51:06 +0000
commitbe0fece992d7f4d1d9487860fecb95d78ebcd479 (patch)
tree2b53b6abba8be7a40bf843387bf05e501f6b7429 /dev-lang/nim
parentdev-ml/ocaml-data-notation: Drop proxied maintainer (diff)
downloadgentoo-be0fece992d7f4d1d9487860fecb95d78ebcd479.tar.gz
gentoo-be0fece992d7f4d1d9487860fecb95d78ebcd479.tar.bz2
gentoo-be0fece992d7f4d1d9487860fecb95d78ebcd479.zip
dev-lang/nim: build and install 'nimble' and other tools, bug #631512
Defauld './koch install' installs only 'nim' binary as it uses 'compiler.ini' configurations. But there is no easy way to install other tools. After this change ebuild builds and installs tools explicitly to expose them to users. Reported-by: s@zxc.pp.ua Closes: https://bugs.gentoo.org/631512 Package-Manager: Portage-2.3.11, Repoman-2.3.3
Diffstat (limited to 'dev-lang/nim')
-rw-r--r--dev-lang/nim/nim-0.17.2-r1.ebuild65
-rw-r--r--dev-lang/nim/nim-0.17.2.ebuild6
2 files changed, 70 insertions, 1 deletions
diff --git a/dev-lang/nim/nim-0.17.2-r1.ebuild b/dev-lang/nim/nim-0.17.2-r1.ebuild
new file mode 100644
index 000000000000..b5b88357cd22
--- /dev/null
+++ b/dev-lang/nim/nim-0.17.2-r1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1
+
+DESCRIPTION="compiled, garbage-collected systems programming language"
+HOMEPAGE="https://nim-lang.org/"
+SRC_URI="https://nim-lang.org/download/${P}.tar.xz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="doc +readline test"
+
+DEPEND="
+ readline? ( sys-libs/readline:0= )
+"
+RDEPEND="${DEPEND}"
+
+nim_use_enable() {
+ [[ -z $2 ]] && die "usage: nim_use_enable <USE flag> <compiler flag>"
+ use $1 && echo "-d:$2"
+}
+
+src_compile() {
+ ./build.sh || die "build.sh failed"
+
+ ./bin/nim c koch || die "csources nim failed"
+ ./koch boot -d:release $(nim_use_enable readline useGnuReadline) || die "koch boot failed"
+ # build nimble and friends
+ PATH="./bin:$PATH" ./koch tools || die "koch tools failed"
+
+ if use doc; then
+ PATH="./bin:$PATH" ./koch web || die "koch web failed"
+ fi
+}
+
+src_test() {
+ PATH="./bin:$PATH" ./koch test || die "test suite failed"
+}
+
+src_install() {
+ PATH="./bin:$PATH" ./koch install "${ED}/usr" || die "koch install failed"
+ rm -r "${ED}/usr/nim/doc" || die "failed to remove 'doc'"
+
+ dodir /usr/bin
+ exeinto /usr/nim/bin
+
+ local bin_exe
+ for bin_exe in bin/*; do
+ # './koch install' installs only 'nim' binary
+ # but not the rest
+ doexe "${bin_exe}"
+ dosym ../nim/"${bin_exe}" /usr/"${bin_exe}"
+ done
+
+ if use doc; then
+ insinto /usr/share/doc/${PF}
+ dodoc doc/*.html
+ fi
+
+ newbashcomp tools/nim.bash-completion ${PN}
+}
diff --git a/dev-lang/nim/nim-0.17.2.ebuild b/dev-lang/nim/nim-0.17.2.ebuild
index 523a411b0ddc..3942e4e7b582 100644
--- a/dev-lang/nim/nim-0.17.2.ebuild
+++ b/dev-lang/nim/nim-0.17.2.ebuild
@@ -29,6 +29,7 @@ src_compile() {
./bin/nim c koch || die "csources nim failed"
./koch boot -d:release $(nim_use_enable readline useGnuReadline) || die "koch boot failed"
+ PATH="./bin:$PATH" ./koch tools || die "koch tools failed"
if use doc; then
PATH="./bin:$PATH" ./koch web || die "koch web failed"
@@ -44,7 +45,10 @@ src_install() {
rm -r "${ED}/usr/nim/doc" || die "failed to remove 'doc'"
dodir /usr/bin
- dosym ../nim/bin/nim /usr/bin/nim
+ local exe
+ for bin_exe in bin/*; do
+ dosym ../nim/${bin_exe} /usr/${bin_exe}
+ done
if use doc; then
insinto /usr/share/doc/${PF}