git: 2da176f88f7d - main - devel/lua-language-server: Add port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 06 Sep 2022 20:32:12 UTC
The branch main has been updated by adamw: URL: https://cgit.FreeBSD.org/ports/commit/?id=2da176f88f7d944fbcd314284b65ebd19699bf58 commit 2da176f88f7d944fbcd314284b65ebd19699bf58 Author: Adam Weinberger <adamw@FreeBSD.org> AuthorDate: 2022-09-06 20:21:17 +0000 Commit: Adam Weinberger <adamw@FreeBSD.org> CommitDate: 2022-09-06 20:32:08 +0000 devel/lua-language-server: Add port This was difficult to port largely because of luamake, which: 1) Is itself built by a ninja definition file precompiled just for FreeBSD which doesn't work on FreeBSD. 2) Has no documentation whatsoever. I'd love to get rid of the BINARY_ALIAS= gcc=cc hack, but I have literally no idea where luamake picks up its compiler from. Any advice on the above is very welcome! sumneko, luamake (and associated dep bee.lua) went out of their way to try to support FreeBSD, so it'd be nice to get it working right without heavy patching. The Sumneko Lua Language Server is a comprehensive Lua development server. It functions as an LSP client, supporting: * Over 20 supported annotations for documenting your code * Go to definition * Dynamic type checking * Find references * Diagnostics/Warnings * Syntax checking * Element renaming * Hover to view details on variables, functions, and more * Autocompletion * Support for libraries * Code formatting * Spell checking * Custom plugins WWW: https://github.com/sumneko/lua-language-server --- devel/Makefile | 1 + devel/lua-language-server/Makefile | 53 +++++++++++++++++++++ devel/lua-language-server/distinfo | 15 ++++++ .../files/lua-language-server.in | 3 ++ .../files/patch-3rd_bee.lua_compile_common.lua | 30 ++++++++++++ .../patch-3rd_luamake_compile_ninja_freebsd.ninja | 54 ++++++++++++++++++++++ devel/lua-language-server/files/patch-make.lua | 10 ++++ devel/lua-language-server/pkg-descr | 18 ++++++++ 8 files changed, 184 insertions(+) diff --git a/devel/Makefile b/devel/Makefile index c462dc161ebd..9cf3e51c930c 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -1468,6 +1468,7 @@ SUBDIR += lua-cjson SUBDIR += lua-cqueues SUBDIR += lua-gettext + SUBDIR += lua-language-server SUBDIR += lua-lgi SUBDIR += lua-libevent SUBDIR += lua-lpeg diff --git a/devel/lua-language-server/Makefile b/devel/lua-language-server/Makefile new file mode 100644 index 000000000000..4f922449e09b --- /dev/null +++ b/devel/lua-language-server/Makefile @@ -0,0 +1,53 @@ +PORTNAME= lua-language-server +DISTVERSION= 3.5.4 +CATEGORIES= devel + +MAINTAINER= adamw@FreeBSD.org +COMMENT= Sumneko Lua development server and LSP client + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +LIB_DEPENDS= libinotify.so:devel/libinotify + +USES= lua:build ninja:make +USE_GITHUB= yes +GH_ACCOUNT= sumneko +GH_TUPLE= actboy168:bee.lua:301ad60:bee/3rd/bee.lua \ + actboy168:luamake:db9d087:luamake/3rd/luamake \ + cppcxy:EmmyLuaCodeStyle:f389817:emmyluacodestyle/3rd/EmmyLuaCodeStyle \ + bjornbytes:lovr-docs:a6fc516:lovr/3rd/lovr-api \ + love2d-community:love-api:69e7e01:love/3rd/love-api \ + sqmedeiros:lpeglabel:b5d7638:lpeglabel/3rd/lpeglabel + +BINARY_ALIAS= gcc=${CC} +SUB_FILES= lua-language-server +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 + +post-extract: + ${CP} -rp ${WRKSRC}/3rd/bee.lua ${WRKSRC}/3rd/luamake/3rd + +post-patch: + ${REINPLACE_CMD} -e 's|%%CC%%|${CC}|; s|%%LOCALBASE%%|${LOCALBASE}|' \ + ${WRKSRC}/3rd/luamake/compile/ninja/freebsd.ninja \ + ${WRKSRC}/3rd/bee.lua/compile/common.lua + +do-build: + ${DO_MAKE_BUILD} -C ${WRKSRC}/3rd/luamake -f compile/ninja/freebsd.ninja + cd ${WRKSRC} && ${MAKE_ENV} ./3rd/luamake/luamake -v + +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} + +.include <bsd.port.mk> diff --git a/devel/lua-language-server/distinfo b/devel/lua-language-server/distinfo new file mode 100644 index 000000000000..22de0ce8544a --- /dev/null +++ b/devel/lua-language-server/distinfo @@ -0,0 +1,15 @@ +TIMESTAMP = 1662484910 +SHA256 (sumneko-lua-language-server-3.5.4_GH0.tar.gz) = bf1fd783051724fac46028eef018abb14a741db1b07d49a7e50770cb1cbb67a2 +SIZE (sumneko-lua-language-server-3.5.4_GH0.tar.gz) = 3124118 +SHA256 (actboy168-bee.lua-301ad60_GH0.tar.gz) = 8c51b059426c4cf3c5a6db33cc11f0dca44881e762dc5de238219312fe81971a +SIZE (actboy168-bee.lua-301ad60_GH0.tar.gz) = 478403 +SHA256 (actboy168-luamake-db9d087_GH0.tar.gz) = e8b538decaabe2d16da7cd71ace9dc45d8f4f4924608981420a5040bf1217282 +SIZE (actboy168-luamake-db9d087_GH0.tar.gz) = 55438 +SHA256 (cppcxy-EmmyLuaCodeStyle-f389817_GH0.tar.gz) = fac6f0a7fbbd0848ab9482ac9bc3fe535d31f02dc89285c4ba8c0c89f727cdbe +SIZE (cppcxy-EmmyLuaCodeStyle-f389817_GH0.tar.gz) = 4242506 +SHA256 (bjornbytes-lovr-docs-a6fc516_GH0.tar.gz) = 80dcf5a071c2bdb0f41c1f4b203600180aa499085ce090c124f353e4bb8249f1 +SIZE (bjornbytes-lovr-docs-a6fc516_GH0.tar.gz) = 16640833 +SHA256 (love2d-community-love-api-69e7e01_GH0.tar.gz) = 35263a7cb16256407c23155df915e2e0bb2054679f61e86572967eb9afbb04b5 +SIZE (love2d-community-love-api-69e7e01_GH0.tar.gz) = 151635 +SHA256 (sqmedeiros-lpeglabel-b5d7638_GH0.tar.gz) = e2285dac6ad9a2ffca17f5f9ed2f9a57d753b58d41194fc53df35b257bb453d2 +SIZE (sqmedeiros-lpeglabel-b5d7638_GH0.tar.gz) = 82828 diff --git a/devel/lua-language-server/files/lua-language-server.in b/devel/lua-language-server/files/lua-language-server.in new file mode 100644 index 000000000000..72278b6066af --- /dev/null +++ b/devel/lua-language-server/files/lua-language-server.in @@ -0,0 +1,3 @@ +#!/bin/sh + +exec '%%DATADIR%%/bin/lua-language-server' "$@" diff --git a/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua b/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua new file mode 100644 index 000000000000..a5a69b25e78f --- /dev/null +++ b/devel/lua-language-server/files/patch-3rd_bee.lua_compile_common.lua @@ -0,0 +1,30 @@ +--- 3rd/bee.lua/compile/common.lua.orig 2022-08-25 08:04:59 UTC ++++ 3rd/bee.lua/compile/common.lua +@@ -37,7 +37,7 @@ local function need(lst) + end + + lm:source_set "source_bee" { +- includes = ".", ++ includes = {"%%LOCALBASE%%/include", "."}, + sources = "bee/**/*.cpp", + windows = { + sources = need "win" +@@ -152,8 +152,9 @@ lm:lua_source "source_bee" { + sources = { + "!binding/lua_unicode.cpp", + }, ++ includes = "%%LOCALBASE%%/include", + links = "inotify", +- ldflags = "-pthread" ++ ldflags = {"-L%%LOCALBASE%%/lib", "-pthread"} + }, + } + +@@ -191,6 +192,6 @@ lm:source_set 'source_lua' { + flags = "/wd4267" + }, + gcc = { +- flags = "-Wno-maybe-uninitialized", ++ flags = "-Wno-uninitialized", + } + } diff --git a/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja b/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja new file mode 100644 index 000000000000..087d98526e5f --- /dev/null +++ b/devel/lua-language-server/files/patch-3rd_luamake_compile_ninja_freebsd.ninja @@ -0,0 +1,54 @@ +--- 3rd/luamake/compile/ninja/freebsd.ninja.orig 2022-08-25 08:15:47 UTC ++++ 3rd/luamake/compile/ninja/freebsd.ninja +@@ -1,7 +1,7 @@ + builddir = build/freebsd + bin = $builddir/bin + obj = $builddir/obj +-cc = gcc ++cc = %%CC%% + luamake = luamake + rule c_source_bee + command = $cc -MMD -MT $out -MF $out.d -O2 -Wall -Werror $ +@@ -23,7 +23,7 @@ build $obj/source_bee/format.obj: cxx_source_bee $ + build $obj/source_bee/os.obj: cxx_source_bee 3rd/bee.lua/bee/nonstd/fmt/os.cc + rule cxx_source_bee_1 + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall -Werror $ +- -fvisibility=hidden -I3rd/bee.lua -DNDEBUG -o $out -c $in ++ -fvisibility=hidden -I3rd/bee.lua -I%%LOCALBASE%%/include -DNDEBUG -o $out -c $in + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -49,7 +49,7 @@ build $obj/source_bee/path_helper.obj: cxx_source_bee_ + rule cxx_source_bee_2 + command = $cc -MMD -MT $out -MF $out.d -std=c++17 -O2 -Wall -Werror $ + -fvisibility=hidden -I3rd/bee.lua/3rd/lua-seri -I3rd/bee.lua $ +- -Itools/lua54 -DBEE_STATIC -DNDEBUG -o $out -c $in ++ -Itools/lua54 -I%%LOCALBASE%%/include -DBEE_STATIC -DNDEBUG -o $out -c $in + description = Compile C++ $out + deps = gcc + depfile = $out.d +@@ -79,7 +79,7 @@ build $obj/source_lua/utf8_crt.obj: c_source_lua $ + 3rd/bee.lua/3rd/lua/utf8_crt.c + rule c_source_lua_1 + command = $cc -MMD -MT $out -MF $out.d -O2 -Wall -Werror -DMAKE_LIB $ +- -DLUA_USE_LINUX -DNDEBUG -Wno-maybe-uninitialized -o $out -c $in ++ -DLUA_USE_LINUX -DNDEBUG -Wno-uninitialized -o $out -c $in + description = Compile C $out + deps = gcc + depfile = $out.d +@@ -96,8 +96,7 @@ build $obj/source_bootstrap/main.obj: cxx_source_boots + build $obj/source_bootstrap/progdir.obj: cxx_source_bootstrap $ + 3rd/bee.lua/bootstrap/progdir.cpp + rule link_luamake +- command = $cc $in -o $out -lm -Wl,-E -linotify -pthread -Wl,-Bstatic $ +- -lstdc++ -Wl,-Bdynamic -static-libgcc -s ++ command = $cc $in -o $out -lm -L%%LOCALBASE%%/lib -linotify -pthread -lstdc++ -s + description = Link Exe $out + build $bin/luamake: link_luamake $obj/source_bootstrap/main.obj $ + $obj/source_bootstrap/progdir.obj $obj/source_bee/lua-seri.obj $ +@@ -138,4 +137,4 @@ build luamake: copy | $bin/luamake + build copy_script: phony $bin/main.lua + build test: phony $obj/test.stamp + build copy_luamake: phony luamake +-default test copy_luamake ++default copy_luamake diff --git a/devel/lua-language-server/files/patch-make.lua b/devel/lua-language-server/files/patch-make.lua new file mode 100644 index 000000000000..d5a2d40ab0cb --- /dev/null +++ b/devel/lua-language-server/files/patch-make.lua @@ -0,0 +1,10 @@ +--- make.lua.orig 2022-09-06 18:48:12 UTC ++++ make.lua +@@ -96,6 +96,5 @@ lm:build 'unit-test' { + } + + lm:default { +- "bee-test", +- "unit-test", ++ "all" + } diff --git a/devel/lua-language-server/pkg-descr b/devel/lua-language-server/pkg-descr new file mode 100644 index 000000000000..deaad32cc7b6 --- /dev/null +++ b/devel/lua-language-server/pkg-descr @@ -0,0 +1,18 @@ +The Sumneko Lua Language Server is a comprehensive Lua development +server. It functions as an LSP client, supporting: + +* Over 20 supported annotations for documenting your code +* Go to definition +* Dynamic type checking +* Find references +* Diagnostics/Warnings +* Syntax checking +* Element renaming +* Hover to view details on variables, functions, and more +* Autocompletion +* Support for libraries +* Code formatting +* Spell checking +* Custom plugins + +WWW: https://github.com/sumneko/lua-language-server