about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix')
-rw-r--r--nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix62
1 files changed, 62 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix b/nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix
new file mode 100644
index 000000000000..36145a05e592
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchCrate
+, pkg-config
+, cmake
+, fontconfig
+, libGL
+, xorg
+, libxkbcommon
+, wayland
+  # Darwin Frameworks
+, AppKit
+, CoreGraphics
+, CoreServices
+, CoreText
+, Foundation
+, libiconv
+, OpenGL
+}:
+
+let
+  rpathLibs = [ fontconfig libGL xorg.libxcb xorg.libX11 xorg.libXcursor xorg.libXrandr xorg.libXi ]
+    ++ lib.optionals stdenv.isLinux [ libxkbcommon wayland ];
+in
+rustPlatform.buildRustPackage rec {
+  pname = "slint-lsp";
+  version = "1.3.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-ikOKpQHMLPCC2IfqWvW0I1auiCdyIZZMu6nMGle/bE0=";
+  };
+
+  cargoHash = "sha256-tprtlG/M2ItE7Ay/9QWrZQHdVEPYD9hDJ+uPR8pq1Xk=";
+
+  nativeBuildInputs = [ cmake pkg-config fontconfig ];
+  buildInputs = rpathLibs ++ [ xorg.libxcb.dev ]
+    ++ lib.optionals stdenv.isDarwin [
+    AppKit
+    CoreGraphics
+    CoreServices
+    CoreText
+    Foundation
+    libiconv
+    OpenGL
+  ];
+
+  postInstall = lib.optionalString stdenv.isLinux  ''
+    patchelf --set-rpath ${lib.makeLibraryPath rpathLibs} $out/bin/slint-lsp
+  '';
+
+  dontPatchELF = true;
+
+  meta = with lib; {
+    description = "Language Server Protocol (LSP) for Slint UI language";
+    homepage = "https://slint-ui.com/";
+    changelog = "https://github.com/slint-ui/slint/blob/v${version}/CHANGELOG.md";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ xgroleau ];
+  };
+}