nixpkgs/pkgs/applications/gis/qgis/default.nix
Ivan Mincik 54444b5892 qgis: add nixos tests
Add NixOS test for QGIS and QGIS-LTR. This test creates QGIS vector
memory layer containing Nix snowflake. This proves that application can
successfully start and Python bindings are working.

By default, Python script is executed in non-interactive mode and QGIS
is closed after script is finished. This script can be also executed
interactively by running following command:

```
 nix-build -A qgis
 QGIS_TEST_INTERACTIVE=True ./result/bin/qgis  --code pkgs/applications/gis/qgis/test.py
```

In this case, QGIS is not automatically closed.
2023-09-02 17:15:56 +02:00

44 lines
870 B
Nix

{ lib
, makeWrapper
, nixosTests
, symlinkJoin
, extraPythonPackages ? (ps: [ ])
, libsForQt5
}:
let
qgis-unwrapped = libsForQt5.callPackage ./unwrapped.nix { };
in symlinkJoin rec {
inherit (qgis-unwrapped) version;
name = "qgis-${version}";
paths = [ qgis-unwrapped ];
nativeBuildInputs = [
makeWrapper
qgis-unwrapped.py.pkgs.wrapPython
];
# extend to add to the python environment of QGIS without rebuilding QGIS application.
pythonInputs = qgis-unwrapped.pythonBuildInputs ++ (extraPythonPackages qgis-unwrapped.py.pkgs);
postBuild = ''
# unpackPhase
buildPythonPath "$pythonInputs"
wrapProgram $out/bin/qgis \
--prefix PATH : $program_PATH \
--set PYTHONPATH $program_PYTHONPATH
'';
passthru = {
unwrapped = qgis-unwrapped;
tests.qgis = nixosTests.qgis;
};
meta = qgis-unwrapped.meta;
}