ce69f0e90d
There are two build phases: first the port builds luamake, and then it uses luamake to build LuaLS. Verbosity (i.e. showing build commands) and building with ccache is enabled for both phases. Reviewed by: Dave Marker Approved by: Dave Marker (maintianer) Differential Revision: https://reviews.freebsd.org/D56566
105 lines
4.2 KiB
Makefile
105 lines
4.2 KiB
Makefile
PORTNAME= lua-language-server
|
|
DISTVERSION= 3.18.2
|
|
PORTEPOCH= 1
|
|
CATEGORIES= devel
|
|
|
|
MAINTAINER= dave@freedave.net
|
|
COMMENT= Lua development server and LSP client
|
|
WWW= https://luals.github.io
|
|
|
|
LICENSE= MIT
|
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
|
|
USES= dos2unix inotify ninja:make
|
|
DOS2UNIX_REGEX= .*\.(cpp|h|json|lua|md|obj)
|
|
USE_GITHUB= yes
|
|
GH_ACCOUNT= LuaLS
|
|
|
|
# autogenerated with:
|
|
# submodules2tuple -v -b $DISTVERSION https://github.com/LuaLS/lua-language-server
|
|
# But then you must distinguish the 2 `bee.lua` manually.
|
|
GH_TUPLE= CppCXY:EmmyLuaCodeStyle:8c4289b7:emmyluacodestyle/3rd/EmmyLuaCodeStyle \
|
|
actboy168:bee.lua:f55b6988:beelua/3rd/bee.lua \
|
|
actboy168:json.lua:08095fd2:jsonlua/3rd/json.lua \
|
|
actboy168:ltest:0d2d81f:ltest/3rd/json.lua/test/ltest \
|
|
love2d-community:love-api:85363928:loveapi/3rd/love-api \
|
|
bjornbytes:lovr-docs:e89c753e:lovrdocs/3rd/lovr-api \
|
|
sqmedeiros:lpeglabel:912b0b9e:lpeglabel/3rd/lpeglabel \
|
|
actboy168:luamake:4c4bd16c:luamake/3rd/luamake \
|
|
actboy168:bee.lua:466c4f0:beelua_luamake/3rd/luamake/bee.lua \
|
|
LuaCATS:cocos4.0:c0b2259e:cocos40/meta/3rd/Cocos4.0 \
|
|
LuaCATS:defold:05379b40:defold/meta/3rd/Defold \
|
|
LuaCATS:jass:80d85cbb:jass/meta/3rd/Jass \
|
|
LuaCATS:openresty:3bec36f0:openresty/meta/3rd/OpenResty \
|
|
LuaCATS:bee:c8ce19fd:bee/meta/3rd/bee \
|
|
LuaCATS:busted:5ed85d0e:busted/meta/3rd/busted \
|
|
LuaCATS:ffi-reflect:e9037efc:ffireflect/meta/3rd/ffi-reflect \
|
|
LuaCATS:luafilesystem:9b5cfc15:luafilesystem/meta/3rd/lfs \
|
|
LuaCATS:love2d:98f76845:love2d/meta/3rd/love2d \
|
|
LuaCATS:lovr:3ba215f9:lovr/meta/3rd/lovr \
|
|
LuaCATS:luaecs:21192fbd:luaecs/meta/3rd/luaecs \
|
|
LuaCATS:luassert:d3528bb6:luassert/meta/3rd/luassert \
|
|
LuaCATS:luv:3615eb12:luv/meta/3rd/luv \
|
|
LuaCATS:skynet:afa6717a:skynet/meta/3rd/skynet
|
|
|
|
SUB_FILES= lua-language-server pkg-message
|
|
|
|
PLIST_FILES= bin/lua-language-server \
|
|
${DATADIR_REL}/bin/lua-language-server \
|
|
${DATADIR_REL}/bin/main.lua \
|
|
${DATADIR_REL}/debugger.lua \
|
|
${DATADIR_REL}/main.lua
|
|
|
|
PORTDATA= locale meta script
|
|
|
|
PORTEXAMPLES= neovim.luarc.json
|
|
|
|
OPTIONS_DEFINE= EXAMPLES
|
|
|
|
EXAMPLES_SUB_FILES= neovim.luarc.json
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
# `luamake' has its own syntax for linking of inotify library
|
|
.if defined(INOTIFY_PORT)
|
|
LM_INOTIFY_LINK= links = "inotify",
|
|
.endif
|
|
|
|
post-patch:
|
|
${REINPLACE_CMD} -e 's|%CC%|${CCACHE_BIN} ${CC}|' ${WRKSRC}/3rd/luamake/compile/ninja/freebsd.ninja
|
|
${REINPLACE_CMD} -e 's|%CC%|${CCACHE_BIN} ${CC}|' ${WRKSRC}/3rd/luamake/scripts/globals.lua
|
|
${REINPLACE_CMD} -e 's|%LOCALBASE%|${LOCALBASE}|' ${WRKSRC}/3rd/bee.lua/compile/common.lua
|
|
${REINPLACE_CMD} -e 's|%LM_INOTIFY_LINK%|${LM_INOTIFY_LINK}|' ${WRKSRC}/3rd/bee.lua/compile/common.lua
|
|
${REINPLACE_CMD} -e 's|%LOCALBASE%|${LOCALBASE}|' ${WRKSRC}/3rd/luamake/compile/ninja/freebsd.ninja
|
|
${REINPLACE_CMD} -e 's|%INOTIFY_LIB%|${INOTIFY_LIB}|' ${WRKSRC}/3rd/luamake/compile/ninja/freebsd.ninja
|
|
${REINPLACE_CMD} -e 's|%WRKDIR%|${WRKDIR}|' ${WRKSRC}/3rd/luamake/bee.lua/test/test.lua
|
|
${REINPLACE_CMD} -e 's|%WRKDIR%|${WRKDIR}|' ${WRKSRC}/3rd/bee.lua/test/test.lua
|
|
${REINPLACE_CMD} -e 's|%NINJA_CMD%|${NINJA_CMD}|' ${WRKSRC}/3rd/luamake/compile/build.sh
|
|
${REINPLACE_CMD} -e 's|%NINJA_CMD%|${NINJA_CMD}|' ${WRKSRC}/3rd/luamake/scripts/globals.lua
|
|
|
|
# `luamake all` instead of `luamake rebuild` because there is a flaky test
|
|
do-build:
|
|
cd ${WRKSRC}/3rd/luamake && compile/build.sh -v notest
|
|
cd ${WRKSRC} && env && 3rd/luamake/luamake -v all
|
|
|
|
do-install:
|
|
${MKDIR} ${STAGEDIR}${DATADIR}/bin
|
|
${INSTALL_SCRIPT} ${WRKDIR}/lua-language-server ${STAGEDIR}${PREFIX}/bin
|
|
${INSTALL_PROGRAM} ${WRKSRC}/bin/lua-language-server ${STAGEDIR}${DATADIR}/bin
|
|
${INSTALL_SCRIPT} ${WRKSRC}/bin/main.lua ${STAGEDIR}${DATADIR}/bin
|
|
${INSTALL_DATA} ${WRKSRC}/debugger.lua ${STAGEDIR}${DATADIR}
|
|
${INSTALL_DATA} ${WRKSRC}/main.lua ${STAGEDIR}${DATADIR}
|
|
cd ${WRKSRC} && ${COPYTREE_SHARE} "locale meta script" ${STAGEDIR}${DATADIR}
|
|
|
|
do-install-EXAMPLES-on:
|
|
${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
|
|
${INSTALL_DATA} ${WRKDIR}/neovim.luarc.json ${STAGEDIR}${EXAMPLESDIR}
|
|
|
|
# you may hit https://github.com/LuaLS/lua-language-server/issues/2896
|
|
# also an incorrect test for bee (in both versions) doing thread.sleep
|
|
do-test:
|
|
cd ${WRKSRC}/3rd/luamake && build/freebsd/bin/luamake bee.lua/test/test.lua
|
|
cd ${WRKSRC} && 3rd/luamake/luamake unit-test
|
|
|
|
.include <bsd.port.post.mk>
|