summary refs log tree commit diff
path: root/pkgs/development/libraries/dconf
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2020-12-28 16:45:00 +0100
committerFlorian Klink <flokli@flokli.de>2020-12-28 16:58:50 +0100
commite69bc44dc72dca17994038826c45336c103f2ed8 (patch)
tree1971f64ae81bc1f45318bc4ad4a38b1d1aa0342d /pkgs/development/libraries/dconf
parent093632af9e05eeba76e706827dfe212768681391 (diff)
dconf: fix cross compilation
Vala doesn't yet cross-compile, and gtk-doc uses some
gobject-introspection bits (and gobject-introspection doesn't
cross-compile either).
Diffstat (limited to 'pkgs/development/libraries/dconf')
-rw-r--r--pkgs/development/libraries/dconf/default.nix18
1 files changed, 10 insertions, 8 deletions
diff --git a/pkgs/development/libraries/dconf/default.nix b/pkgs/development/libraries/dconf/default.nix
index c9c1b9be92286..993e9b8f053a8 100644
--- a/pkgs/development/libraries/dconf/default.nix
+++ b/pkgs/development/libraries/dconf/default.nix
@@ -15,12 +15,15 @@
 , docbook-xsl-nons
 , docbook_xml_dtd_42
 }:
-
+let
+  isCross = (stdenv.hostPlatform != stdenv.buildPlatform);
+in
 stdenv.mkDerivation rec {
   pname = "dconf";
   version = "0.38.0";
 
-  outputs = [ "out" "lib" "dev" "devdoc" ];
+  outputs = [ "out" "lib" "dev" ]
+    ++ stdenv.lib.optional (!isCross) "devdoc";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
@@ -30,27 +33,26 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     meson
     ninja
-    vala
     pkg-config
     python3
     libxslt
     libxml2
     glib
-    gtk-doc
     docbook-xsl-nons
     docbook_xml_dtd_42
-  ];
+  ] ++ stdenv.lib.optional (!isCross) gtk-doc;
 
   buildInputs = [
     glib
     bash-completion
     dbus
-  ];
+  ] ++ stdenv.lib.optional (!isCross) vala;
+  # Vala cross compilation is broken. For now, build dconf without vapi when cross-compiling.
 
   mesonFlags = [
     "--sysconfdir=/etc"
-    "-Dgtk_doc=true"
-  ];
+    "-Dgtk_doc=${stdenv.lib.boolToString (!isCross)}" # gtk-doc does do some gobject introspection, which doesn't yet cross-compile.
+  ] ++ stdenv.lib.optional isCross "-Dvapi=false";
 
   doCheck = !stdenv.isAarch32 && !stdenv.isAarch64 && !stdenv.isDarwin;