diff --git a/dev-util/lua-language-server/Manifest b/dev-util/lua-language-server/Manifest new file mode 100644 index 000000000..0bb9d8c31 --- /dev/null +++ b/dev-util/lua-language-server/Manifest @@ -0,0 +1 @@ +DIST lua-language-server-3.5.3.zip 30586495 BLAKE2B 820df06cc21bb1905196172084ac2af7799381a12a6f98fea5c45091e9a1b573c2b25321e919ed173b21966b54cb3161e360717989dfcb24b3f268fee5b497ee SHA512 f5762c2a21e7c58fe1906b2092bbafa5ced9b9b5413db3003e15a3cff6b67e78a102106dbfcb556a8a97a74aff32d8d42b42773862635aed278d162488b63266 diff --git a/dev-util/lua-language-server/files/wrapper.sh.in b/dev-util/lua-language-server/files/wrapper.sh.in new file mode 100644 index 000000000..f6d8ef677 --- /dev/null +++ b/dev-util/lua-language-server/files/wrapper.sh.in @@ -0,0 +1,12 @@ +#!/bin/sh +# some paths must be writable, so we put them into a temporary directory + +TMPPATH="$(mktemp --directory lua-language-server.XXXX --tmpdir)" + +EPREFIX/opt/lua-language-server/bin/lua-language-server \ + -E EPREFIX/opt/lua-language-server/main.lua \ + --logpath="${TMPPATH}/log" \ + --metapath="${TMPPATH}/meta" \ + "$@" + +rm -rf "${TMPPATH}" diff --git a/dev-util/lua-language-server/lua-language-server-3.5.3.ebuild b/dev-util/lua-language-server/lua-language-server-3.5.3.ebuild new file mode 100644 index 000000000..3348cff22 --- /dev/null +++ b/dev-util/lua-language-server/lua-language-server-3.5.3.ebuild @@ -0,0 +1,65 @@ +# Copyright 2020-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# TODO: unbundle deps, set flags correctly, verbose luamake, less sed hacks + +EAPI=8 + +LUA_COMPAT=( lua{5-{1,3,4},jit} ) + +inherit lua-single ninja-utils toolchain-funcs + +DESCRIPTION="A language server that offers Lua language support" +HOMEPAGE="https://github.com/sumneko/lua-language-server" +SRC_URI="https://github.com/sumneko/${PN}/releases/download/${PV}/${P}-submodules.zip -> ${P}.zip" +S="${WORKDIR}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +REQUIRED_USE="${LUA_REQUIRED_USE}" + +RESTRICT="!test? ( test )" + +DEPEND="${LUA_DEPS}" +RDEPEND="${DEPEND}" +BDEPEND=" + app-arch/unzip + dev-util/ninja +" + +QA_PREBUILT="/opt/lua-language-server/bin/lua-language-server" + +src_prepare() { + sed -i "s/^cc = gcc$/cc = $(tc-getCC)/" \ + 3rd/luamake/compile/ninja/linux.ninja || die + sed -i "/require \"make.detect_platform\"/a lm.cc = '$(tc-getCC)'" \ + make.lua || die + sed -i "s/flags = \"-Wall -Werror\"/flags = \"-Wall ${CXXFLAGS}\"/" \ + make/code_format.lua || die + + sed "s/EPREFIX/${EPREFIX}/g" "${FILESDIR}"/wrapper.sh.in > wrapper.sh || die + + default +} + +src_compile() { + eninja -C 3rd/luamake -f compile/ninja/linux.ninja $(usex test '' 'luamake') + ./3rd/luamake/luamake $(usex test '' 'all') || die +} + +src_install() { + newbin wrapper.sh ${PN} + + into /opt/${PN} + dobin bin/${PN} + + insinto /opt/${PN}/bin + doins bin/main.lua + + insinto /opt/${PN} + doins -r debugger.lua main.lua locale meta script + + einstalldocs +}