diff --git a/pkgs/by-name/lu/luau-lsp/package.nix b/pkgs/by-name/lu/luau-lsp/package.nix new file mode 100644 index 000000000000..535357f6d2b6 --- /dev/null +++ b/pkgs/by-name/lu/luau-lsp/package.nix @@ -0,0 +1,70 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + versionCheckHook, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "luau-lsp"; + version = "1.45.0"; + + src = fetchFromGitHub { + owner = "JohnnyMorganz"; + repo = "luau-lsp"; + tag = finalAttrs.version; + hash = "sha256-OJAjTy0vTRb43TTiPeXafWq4kjIpnDXoTprVzbMnaWQ="; + fetchSubmodules = true; + }; + + NIX_CFLAGS_COMPILE = "-Wno-error"; + + cmakeFlags = lib.optionals stdenv.hostPlatform.isDarwin [ + (lib.cmakeFeature "CMAKE_OSX_ARCHITECTURES" stdenv.hostPlatform.darwinArch) + ]; + + nativeBuildInputs = [ cmake ]; + + buildPhase = '' + runHook preBuild + + cmake --build . --target Luau.LanguageServer.CLI --config Release + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + install -D luau-lsp $out/bin/luau-lsp + + runHook postInstall + ''; + + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "--version"; + doInstallCheck = true; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Language Server Implementation for Luau"; + homepage = "https://github.com/JohnnyMorganz/luau-lsp"; + downloadPage = "https://github.com/JohnnyMorganz/luau-lsp/releases/tag/${finalAttrs.version}"; + changelog = "https://github.com/JohnnyMorganz/luau-lsp/blob/${finalAttrs.version}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + anninzy + HeitorAugustoLN + ]; + mainProgram = "luau-lsp"; + platforms = lib.platforms.all; + badPlatforms = [ + # Could not find a package configuration file provided by "Protobuf" + # It is unclear why this is only happening on x86_64-darwin + "x86_64-darwin" + ]; + }; +})