aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/tools/sourcetrail/python.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/tools/sourcetrail/python.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sourcetrail/python.nix68
1 files changed, 68 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sourcetrail/python.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sourcetrail/python.nix
new file mode 100644
index 000000000000..113abb77d61b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sourcetrail/python.nix
@@ -0,0 +1,68 @@
+{ 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 = "05hlpd3am029pv1wi6mys3q0ggp64axmg8bdf1fabl9cl9jffscq";
+ 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;
+ };
+}