forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Package-Manager: Portage-3.0.1, Repoman-2.3.23 Signed-off-by: Sergei Trofimovich <[email protected]>
- Loading branch information
Sergei Trofimovich
committed
Jul 31, 2020
1 parent
2dc29d2
commit 2c23391
Showing
2 changed files
with
87 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
DIST nim-1.2.4.tar.xz 5680128 BLAKE2B d8bb186862bf8c8e7e20dd5d1035013c6d48de777512658736ddcd49723e5789dc1e8fe6b5dc8bfbda36d204aeaeba3fdb4e10c6d7955fdc47d9fe78ce17082c SHA512 ed5dd7a744229685c9c034700eb0f7d7c51030ea344c1c371cf2731632fd3376b577a3a9731ed79d65a8fb69f3507a8a88408f2e5c46359a8bbd3b3092d991cc | ||
DIST nim-1.2.6.tar.xz 5688752 BLAKE2B 8865df1c508b9c21a2808c0eed8c6cd294f57829e8b75a3c3b70964b45ae7a29ae1670763447ba4f7135ce8ef55e696db1a5cd0a9d563d2174c7212c41d9d268 SHA512 ef59bbb0d4b05bd13624ea7da7182f1d73ffb31c7b34f5928b7e0411809fd70d1898fba9bb02441dc9ce802cd8accaf59448aef5b457e64de73c2ffbbcd53fbc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# Copyright 1999-2020 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
inherit bash-completion-r1 multiprocessing toolchain-funcs | ||
|
||
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" | ||
|
||
RESTRICT=test # need to sort out depends and numerous failures | ||
|
||
RDEPEND=" | ||
readline? ( sys-libs/readline:0= ) | ||
" | ||
DEPEND=" | ||
${DEPEND} | ||
test? ( net-libs/nodejs ) | ||
" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/${PN}-0.20.0-paths.patch | ||
) | ||
|
||
_run() { | ||
echo "$@" | ||
"$@" || die "'$*' failed" | ||
} | ||
|
||
nim_use_enable() { | ||
[[ -z $2 ]] && die "usage: nim_use_enable <USE flag> <compiler flag>" | ||
use $1 && echo "-d:$2" | ||
} | ||
|
||
src_configure() { | ||
export XDG_CACHE_HOME=${T}/cache #667182 | ||
tc-export CC LD | ||
|
||
# Override default CC=gcc. | ||
echo "gcc.exe = \"$(tc-getCC)\"" >> config/nim.cfg || die | ||
echo "gcc.linkerexe = \"$(tc-getCC)\"" >> config/nim.cfg || die | ||
} | ||
|
||
src_compile() { | ||
|
||
_run ./build.sh | ||
|
||
_run ./bin/nim --parallelBuild:$(makeopts_jobs) c koch | ||
_run ./koch boot --parallelBuild:$(makeopts_jobs) -d:release $(nim_use_enable readline useGnuReadline) | ||
# build nimble and friends | ||
# --stable to avoid pulling HEAD nimble | ||
PATH="./bin:$PATH" _run ./koch --stable tools --parallelBuild:$(makeopts_jobs) | ||
|
||
if use doc; then | ||
# TODO: '--parallelBuild:' does ont seem to work | ||
PATH="./bin:$PATH" _run ./koch doc --parallelBuild:$(makeopts_jobs) | ||
fi | ||
} | ||
|
||
src_test() { | ||
PATH="./bin:$PATH" _run ./koch test --parallelBuild:$(makeopts_jobs) | ||
} | ||
|
||
src_install() { | ||
PATH="./bin:$PATH" _run ./koch install "${ED}" | ||
rm -r "${ED}/usr/share/nim/doc" || die "failed to remove 'doc'" | ||
|
||
exeinto /usr/bin | ||
|
||
local bin_exe | ||
for bin_exe in bin/*; do | ||
# './koch install' installs only 'nim' binary | ||
# but not the rest | ||
[[ ${bin_exe} == bin/nim ]] && continue | ||
doexe "${bin_exe}" | ||
done | ||
|
||
use doc && dodoc doc/html/*.html | ||
newbashcomp tools/nim.bash-completion ${PN} | ||
} |