blob: 3dc392565732a92f7dd049ff4dbe619d97990a5b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
PORTNAME= nim
DISTVERSION= 2.0.4
CATEGORIES= lang
MASTER_SITES= https://nim-lang.org/download/
MAINTAINER= ports@nicandneal.net
COMMENT= Nim programming language
WWW= https://nim-lang.org/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/copying.txt
LIB_DEPENDS= libpcre.so:devel/pcre
TEST_DEPENDS= node18>=0:www/node
USES= compiler:c11 cpe tar:xz
CPE_VENDOR= nim-lang
SUB_FILES= pkg-message
OPTIONS_DEFINE= DOCS TOOLS
OPTIONS_DEFAULT= TOOLS
OPTIONS_EXCLUDE_powerpc64= DOCS
OPTIONS_SUB= yes
TOOLS_DESC= Build and install nim tools, not including nimble nor nimfind
TEST_BINARY_ALIAS= node=nodejs
.include <bsd.port.pre.mk>
TLIST= nimgrep nimpretty nimsuggest testament
NIMDIR= ${STAGEDIR}${PREFIX}/nim
do-build:
cd ${WRKSRC} && ${SETENV} CC="${CC}" LINKER="${CC}" \
COMP_FLAGS="${CPPFLAGS} ${CFLAGS}" LINK_FLAGS="${LDFLAGS}" \
${SH} build.sh
cd ${WRKSRC} && bin/nim c --parallelBuild=${MAKE_JOBS_NUMBER} \
--nimcache=${WRKDIR}/nimcache -d:release koch
cd ${WRKSRC} && ./koch boot --parallelBuild=${MAKE_JOBS_NUMBER} \
-d:release --nimcache=${WRKDIR}/nimcache
cd ${WRKSRC} && bin/nim c --parallelBuild=${MAKE_JOBS_NUMBER} \
-d:release --nimcache=${WRKDIR}/nimcache --app:lib \
-d:createNimRtl lib/nimrtl.nim
do-build-DOCS-on:
cd ${WRKSRC} && ./koch --localdocs docs \
-d:release --nimcache=${WRKDIR}/nimcache --docCmd=skip
do-build-TOOLS-on:
cd ${WRKSRC} && ./koch tools --parallelBuild=${MAKE_JOBS_NUMBER} \
-d:release --nimcache=${WRKSRC}/nimcache
do-install:
${MKDIR} ${NIMDIR}
${MKDIR} ${NIMDIR}/bin
# Install nim compiler
${INSTALL_PROGRAM} ${WRKSRC}/bin/nim ${NIMDIR}/bin
${STRIP_CMD} ${NIMDIR}/bin/nim
# Install lib nim rtl
${MKDIR} ${NIMDIR}/lib
${INSTALL_LIB} ${WRKSRC}/lib/libnimrtl.so ${NIMDIR}/lib
# Install nim lib files
(cd ${WRKSRC}/lib && ${COPYTREE_SHARE} . ${NIMDIR}/lib "! -name libnimrtl.so")
${MKDIR} ${NIMDIR}/lib/compiler
(cd ${WRKSRC}/compiler && ${COPYTREE_SHARE} . ${NIMDIR}/lib/compiler "! -name nim ! -name nim1")
(cd ${WRKSRC}/dist/checksums && ${COPYTREE_SHARE} . ${NIMDIR}/lib/dist/checksums)
# Configuration files
${MKDIR} ${NIMDIR}/config
.for file in nim.cfg nimdoc.cfg nimdoc.tex.cfg
${INSTALL_DATA} ${WRKSRC}/config/${file} ${NIMDIR}/config
.endfor
do-install-DOCS-on:
${FIND} ${WRKSRC}/doc -name "*.idx" -delete
${MKDIR} ${NIMDIR}/doc
(cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${NIMDIR}/doc)
${MKDIR} ${NIMDIR}/tools/dochack
${INSTALL_SCRIPT} ${WRKSRC}/tools/dochack/dochack.nim ${NIMDIR}/tools/dochack
${INSTALL_SCRIPT} ${WRKSRC}/tools/dochack/dochack.js ${NIMDIR}/tools/dochack
${INSTALL_SCRIPT} ${WRKSRC}/tools/dochack/fuzzysearch.nim ${NIMDIR}/tools/dochack
do-install-TOOLS-on:
.for t in ${TLIST}
${INSTALL_PROGRAM} ${WRKSRC}/bin/${t} ${NIMDIR}/bin
.endfor
do-test:
cd ${WRKSRC} && ${SETENV} ./koch test all -d:release \
--nimcache=${WRKDIR}/nimcache --putenv:"PATH=${PATH}"
.include <bsd.port.post.mk>
|