blob: de8c18482c60f664b345843deaacc05fe1e1a853 (
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
|
PORTNAME= tailwindcss4
DISTVERSION= 4.1.11
CATEGORIES= www devel
MASTER_SITES= LOCAL/dch/${PORTNAME}/:npm
DISTFILES= ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npm
MAINTAINER= dch@FreeBSD.org
COMMENT= Utility-first CSS framework with npm dependencies
WWW= https://tailwindcss.com/
LICENSE= MIT
ONLY_FOR_ARCHS= amd64
BUILD_DEPENDS= npm-node24>0:www/npm-node24
USES= nodejs:24,build,run python:build tar:txz
CONFLICTS_INSTALL= tailwindcss*
_DAISYUI_VER= 5.0.46
_FORMS_VER= 0.5.10
_POSTCSS_VER= 8.5.5
_TWCLI_VER= ${DISTVERSION}
_TAILWIND_VER= ${DISTVERSION}
_WATCHER_VER= 2.5.1
_NPM_CACHE= ${WRKDIR}/cache
_NPM_ARCHIVE= ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}
do-extract:
@${MKDIR} ${WRKDIR}/cache
${TAR} -xf ${DISTDIR}/${_NPM_ARCHIVE} -C ${_NPM_CACHE}
do-build:
${MKDIR} -p ${WRKDIR}
# because nodejs is fiddly we can't build & then install
.if !defined(MAINTAINER_MODE)
${ECHO_CMD} offline=true > ${WRKDIR}/.npmrc
.else
${ECHO_CMD} > ${WRKDIR}/.npmrc
.endif
do-install:
${ECHO_CMD} python=${PYTHON_CMD} >> ${WRKDIR}/.npmrc
(cd ${WRKDIR} && \
${SETENV} HOME=${WRKDIR} npm_config_cache=${_NPM_CACHE} \
npm_config_devdir=${_NPM_CACHE} npm_config_nodedir=${PREFIX} \
npm_config_node_gyp_include_dir=${PREFIX}/include/node \
npm install --global --no-audit --no-fund --no-prune --cache \
${_NPM_CACHE} --prefer-offline --verbose --no-progress \
--build-from-source --prefix=${STAGEDIR}${PREFIX} @parcel/watcher@${_WATCHER_VER} \
@tailwindcss/cli@${TWCLI_VER} @tailwindcss/forms@${FORMS_VER} \
autoprefixer@${_PREFIX_VER} postcss@${_POSTCSS_VER} \
tailwindcss@${_TAILWIND_VER} daisyui@${_DAISYUI_VER})
# strip .node files they are shared libraries
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/node_modules/@parcel/watcher/node_modules/@parcel/watcher-freebsd-*/watcher.node
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/node_modules/@parcel/watcher/build/Release/watcher.node
# create symlinks for the CLI tools
.for script in nanoid:../lib/node_modules/nanoid/bin/nanoid.cjs \
tailwind:../lib/node_modules/@tailwindcss/cli/dist/index.mjs \
tailwindcss:../lib/node_modules/@tailwindcss/cli/dist/index.mjs
${LN} -sf ${script:C/.*://} ${STAGEDIR}${PREFIX}/bin/${script:C/:.*//}
.endfor
# remove files already present in node, npm, or yarn packages
.for m in corepack npm
${RM} -rf ${STAGEDIR}${PREFIX}/lib/node_modules/${m}
.endfor
# remove build detritus
.for file in Release/.deps Release/obj.target Makefile binding.Makefile \
config.gypi watcher.target.mk
${RM} -rf ${STAGEDIR}${PREFIX}/lib/node_modules/@parcel/watcher/build/${file}
.endfor
# first, run `make -DMAINTAINER_MODE do-build`, then `make _tarball`
_tarball: do-install
${TAR} -caf ${DISTDIR}/${_NPM_ARCHIVE} -C ${_NPM_CACHE} _cacache
${CHMOD} 644 ${DISTDIR}/${_NPM_ARCHIVE}
@${ECHO_MSG} Ready to upload tarball to freefall distfiles directory:
@${ECHO_MSG} ${DISTDIR}/${_NPM_ARCHIVE}
@${ECHO_MSG} scp ${DISTDIR}/${_NPM_ARCHIVE} dch@freefall.freebsd.org:public_distfiles/${PORTNAME}/
.include <bsd.port.mk>
|