about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/sourcetrail/python.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/tools/sourcetrail/python.nix')
-rw-r--r--nixpkgs/pkgs/development/tools/sourcetrail/python.nix70
1 files changed, 70 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/sourcetrail/python.nix b/nixpkgs/pkgs/development/tools/sourcetrail/python.nix
new file mode 100644
index 000000000000..8ec9c9a2297f
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/sourcetrail/python.nix
@@ -0,0 +1,70 @@
+{ stdenv, lib, fetchFromGitHub, wrapPython, python, jedi, parso, cmake, swig }:
+
+stdenv.mkDerivation rec {
+  pname = "SourcetrailPythonIndexer";
+  version = "v1_db25_p5";
+
+  src = fetchFromGitHub {
+    owner = "CoatiSoftware";
+    repo = pname;
+    rev = version;
+    sha256 = "01jaigxigq6dvfwq018gn9qw7i6p4jm0y71lqzschfv9vwf6ga45";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ wrapPython cmake swig ];
+  buildInputs = [ python ];
+  pythonPath = [ jedi parso ];
+
+  dontUseCmakeConfigure = true;
+  cmakeFlags = [
+    "-DBUILD_BINDINGS_PYTHON=1"
+    "-DPYTHON_VERSION=${lib.versions.majorMinor python.version}"
+  ];
+
+  buildPhase = ''
+    pushd SourcetrailDB
+    cmake -Bbuild $cmakeFlags .
+    pushd build
+    make -j $NIX_BUILD_CORES
+    popd
+    popd
+  '';
+
+  checkPhase = ''
+    buildPythonPath "$pythonPath"
+
+    # FIXME: some tests are failing
+    # PYTHONPATH="$program_PYTHONPATH:SourcetrailDB/build/bindings_python" \
+    #   ${python}/bin/python test.py
+    PYTHONPATH="$program_PYTHONPATH:SourcetrailDB/build/bindings_python" \
+      ${python}/bin/python test_shallow.py
+  '';
+
+  installPhase = ''
+    shopt -s extglob
+    mkdir -p $out/{bin,libexec}
+
+    cp !(run).py $out/libexec # copy *.py excluding run.py (needs extglob)
+    cat <(echo '#!/usr/bin/env python') run.py > $out/libexec/run.py
+    chmod +x $out/libexec/run.py
+    ln -s $out/libexec/run.py $out/bin/SourcetrailPythonIndexer
+
+    pushd SourcetrailDB/build/bindings_python
+    cp sourcetraildb.py $out/libexec
+    cp _sourcetraildb* $out/libexec/_sourcetraildb.so
+    popd
+
+    wrapPythonProgramsIn "$out/libexec" "$pythonPath"
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Python indexer for Sourcetrail";
+    homepage = "https://github.com/CoatiSoftware/SourcetrailPythonIndexer";
+    license = licenses.gpl3;
+    broken = stdenv.isDarwin;
+    # https://github.com/NixOS/nixpkgs/pull/107533#issuecomment-751063675
+  };
+}