diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gaia/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gaia/default.nix | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gaia/default.nix b/nixpkgs/pkgs/development/libraries/gaia/default.nix new file mode 100644 index 000000000000..b154f80c1dd2 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gaia/default.nix @@ -0,0 +1,87 @@ +{ stdenv +, lib +, fetchFromGitHub +, libyaml +, swig +, eigen +, pkgconfig +, wafHook +, makeWrapper +, qt4 +, pythonPackages +, pythonSupport ? false +# Default to false since it breaks the build, see https://github.com/MTG/gaia/issues/11 +, stlfacadeSupport ? false +, assertsSupport ? true +, cyclopsSupport ? true +}: + +assert pythonSupport -> pythonPackages != null; + +stdenv.mkDerivation rec { + pname = "gaia"; + version = "2.4.6"; + + src = fetchFromGitHub { + owner = "MTG"; + repo = "gaia"; + rev = "v${version}"; + sha256 = "03vmdq7ca4f7zp2f4sxyqa8sdpdma3mn9fz4z7d93qryl0bhi7z3"; + }; + + # Fix installation error when waf tries to put files in /etc/ + prePatch = '' + '' + lib.optionalString cyclopsSupport '' + substituteInPlace src/wscript \ + --replace "/etc/cyclops" "$out/etc/cyclops" \ + --replace "/etc/init.d" "$out/etc/init.d" + ''; + + nativeBuildInputs = [ + wafHook + pkgconfig + swig + ] + # The gaiafusion binary inside $out/bin needs a shebangs patch, and + # wrapping with the appropriate $PYTHONPATH + ++ lib.optionals (pythonSupport) [ + pythonPackages.wrapPython + ] + ; + + buildInputs = [ + libyaml + eigen + qt4 + ]; + + propagatedBuildInputs = [] + ++ lib.optionals (pythonSupport) [ + # This is not exactly specified in upstream's README but it's needed by the + # resulting $out/bin/gaiafusion script + pythonPackages.pyyaml + ] + ; + + wafConfigureFlags = [] + ++ lib.optionals (pythonSupport) [ "--with-python-bindings" ] + ++ lib.optionals (stlfacadeSupport) [ "--with-stlfacade" ] + ++ lib.optionals (assertsSupport) [ "--with-asserts" ] + ++ lib.optionals (cyclopsSupport) [ "--with-cyclops" ] + ; + + postFixup = '' + '' + + lib.optionalString pythonSupport '' + wrapPythonPrograms + '' + ; + + meta = with lib; { + homepage = "https://github.com/MTG/gaia"; + description = "General library to work with points in a semimetric space"; + maintainers = with maintainers; [ doronbehar ]; + platforms = platforms.x86; # upstream assume SSE2 / fails on ARM + license = licenses.agpl3; + }; +} |