summary refs log tree commit diff
path: root/pkgs/development/tools/cmake-language-server/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/cmake-language-server/default.nix')
-rw-r--r--pkgs/development/tools/cmake-language-server/default.nix43
1 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/development/tools/cmake-language-server/default.nix b/pkgs/development/tools/cmake-language-server/default.nix
new file mode 100644
index 00000000000..628bb31fbe9
--- /dev/null
+++ b/pkgs/development/tools/cmake-language-server/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub
+, poetry, pygls, pyparsing
+, cmake, pytest, pytest-datadir
+, fetchpatch
+}:
+
+buildPythonApplication rec {
+  pname = "cmake-language-server";
+  version = "0.1.2";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "regen100";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0vz7bjxkk0phjhz3h9kj6yr7wnk3g7lqmkqraa0kw12mzcfck837";
+  };
+
+  # can be removed after v0.1.2
+  patches = stdenv.lib.optional stdenv.isDarwin (fetchpatch {
+    url = "https://github.com/regen100/cmake-language-server/commit/0ec120f39127f25898ab110b43819e3e9becb8a3.patch";
+    sha256 = "1xbmarvsvzd61fnlap4qscnijli2rw2iqr7cyyvar2jd87z6sfp0";
+  });
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'pygls = "^0.8.1"' 'pygls = "^0.9.0"'
+  '';
+
+  nativeBuildInputs = [ poetry ];
+  propagatedBuildInputs = [ pygls pyparsing ];
+
+  checkInputs = [ cmake pytest pytest-datadir ];
+  dontUseCmakeConfigure = true;
+  checkPhase = "pytest";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/regen100/cmake-language-server";
+    description = "CMake LSP Implementation";
+    license = licenses.mit;
+    maintainers = with maintainers; [ metadark ];
+  };
+}