summary refs log tree commit diff
path: root/pkgs/development/libraries/gtk/3.x.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-03-01 17:07:03 +0000
committerAlyssa Ross <hi@alyssa.is>2023-03-02 15:15:29 +0000
commit0913507b1360c55a62f48a82b13314db001a1f3e (patch)
tree8b3eed622936305c917c15e34a2062a06794e9f9 /pkgs/development/libraries/gtk/3.x.nix
parent52a479d024e6eba3ce7bc3178d3b53591d9a92ba (diff)
downloadnixpkgs-0913507b1360c55a62f48a82b13314db001a1f3e.tar
nixpkgs-0913507b1360c55a62f48a82b13314db001a1f3e.tar.gz
nixpkgs-0913507b1360c55a62f48a82b13314db001a1f3e.tar.bz2
nixpkgs-0913507b1360c55a62f48a82b13314db001a1f3e.tar.lz
nixpkgs-0913507b1360c55a62f48a82b13314db001a1f3e.tar.xz
nixpkgs-0913507b1360c55a62f48a82b13314db001a1f3e.tar.zst
nixpkgs-0913507b1360c55a62f48a82b13314db001a1f3e.zip
gtk3: re-disable introspection if no emulator
e.g. when cross compiling from Linux to FreeBSD.
Diffstat (limited to 'pkgs/development/libraries/gtk/3.x.nix')
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix15
1 files changed, 10 insertions, 5 deletions
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index af81a55fcaa..5a1cc8ca9c5 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -8,6 +8,7 @@
 , docbook_xml_dtd_43
 , gtk-doc
 , meson
+, mesonEmulatorHook
 , ninja
 , python3
 , makeWrapper
@@ -21,6 +22,8 @@
 , atk
 , at-spi2-atk
 , gobject-introspection
+, buildPackages
+, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages
 , fribidi
 , xorg
 , libepoxy
@@ -39,7 +42,6 @@
 , wayland-protocols
 , xineramaSupport ? stdenv.isLinux
 , cupsSupport ? stdenv.isLinux
-, withGtkDoc ? stdenv.isLinux && (stdenv.buildPlatform == stdenv.hostPlatform)
 , cups
 , AppKit
 , Cocoa
@@ -63,7 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
   pname = "gtk+3";
   version = "3.24.36";
 
-  outputs = [ "out" "dev" ] ++ lib.optional withGtkDoc "devdoc";
+  outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
   outputBin = "dev";
 
   setupHooks = [
@@ -94,7 +96,6 @@ stdenv.mkDerivation (finalAttrs: {
   ];
   nativeBuildInputs = [
     gettext
-    gobject-introspection
     makeWrapper
     meson
     ninja
@@ -102,12 +103,15 @@ stdenv.mkDerivation (finalAttrs: {
     python3
     sassc
     gdk-pixbuf
-  ] ++ finalAttrs.setupHooks ++ lib.optionals withGtkDoc [
+  ] ++ finalAttrs.setupHooks ++ lib.optionals withIntrospection [
+    gobject-introspection
     docbook_xml_dtd_43
     docbook-xsl-nons
     gtk-doc
     # For xmllint
     libxml2
+  ] ++ lib.optionals (withIntrospection && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    mesonEmulatorHook
   ] ++ lib.optionals waylandSupport [
     wayland-scanner
   ];
@@ -157,12 +161,13 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   mesonFlags = [
-    "-Dgtk_doc=${lib.boolToString withGtkDoc}"
+    "-Dgtk_doc=${lib.boolToString withIntrospection}"
     "-Dtests=false"
     "-Dtracker3=${lib.boolToString trackerSupport}"
     "-Dbroadway_backend=${lib.boolToString broadwaySupport}"
     "-Dx11_backend=${lib.boolToString x11Support}"
     "-Dquartz_backend=${lib.boolToString (stdenv.isDarwin && !x11Support)}"
+    "-Dintrospection=${lib.boolToString withIntrospection}"
   ];
 
   doCheck = false; # needs X11