Merge pull request #44630 from LnL7/darwin-gtk-x11

gtk3: add x11Support for darwin
This commit is contained in:
Daiderd Jordan 2018-08-18 22:14:33 +02:00 committed by GitHub
commit 0ad3721616
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 12 deletions

View File

@ -10,6 +10,7 @@
, dbus , dbus
, glib , glib
, libxml2 , libxml2
, fixDarwinDylibNames
, gnome3 # To pass updateScript , gnome3 # To pass updateScript
}: }:
@ -24,7 +25,9 @@ stdenv.mkDerivation rec {
sha256 = "0vkan52ab9vrkknnv8y4f1cspk8x7xd10qx92xk9ys71p851z2b1"; sha256 = "0vkan52ab9vrkknnv8y4f1cspk8x7xd10qx92xk9ys71p851z2b1";
}; };
nativeBuildInputs = [ meson ninja pkgconfig ]; nativeBuildInputs = [ meson ninja pkgconfig ]
# Fixup rpaths because of meson, remove with meson-0.47
++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
buildInputs = [ at-spi2-core atk dbus glib libxml2 ]; buildInputs = [ at-spi2-core atk dbus glib libxml2 ];
doCheck = false; # fails with "No test data file provided" doCheck = false; # fails with "No test data file provided"

View File

@ -11,6 +11,7 @@
, libX11 , libX11
, libXtst # at-spi2-core can be build without X support, but due it is a client-side library, GUI-less usage is a very rare case , libXtst # at-spi2-core can be build without X support, but due it is a client-side library, GUI-less usage is a very rare case
, libXi , libXi
, fixDarwinDylibNames
, gnome3 # To pass updateScript , gnome3 # To pass updateScript
}: }:
@ -27,7 +28,9 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ meson ninja pkgconfig gobjectIntrospection ]; nativeBuildInputs = [ meson ninja pkgconfig gobjectIntrospection ]
# Fixup rpaths because of meson, remove with meson-0.47
++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
buildInputs = [ dbus glib libX11 libXtst libXi ]; buildInputs = [ dbus glib libX11 libXtst libXi ];
doCheck = false; # fails with "AT-SPI: Couldn't connect to accessibility bus. Is at-spi-bus-launcher running?" doCheck = false; # fails with "AT-SPI: Couldn't connect to accessibility bus. Is at-spi-bus-launcher running?"

View File

@ -2,7 +2,7 @@
, gdk_pixbuf, xlibsWrapper, gobjectIntrospection , gdk_pixbuf, xlibsWrapper, gobjectIntrospection
, xineramaSupport ? stdenv.isLinux , xineramaSupport ? stdenv.isLinux
, cupsSupport ? true, cups ? null , cupsSupport ? true, cups ? null
, gdktarget ? "x11" , gdktarget ? if stdenv.isDarwin then "quartz" else "x11"
, AppKit, Cocoa , AppKit, Cocoa
, fetchpatch , fetchpatch
}: }:

View File

@ -1,10 +1,11 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, gettext, perl, makeWrapper, shared-mime-info { stdenv, fetchurl, fetchpatch, pkgconfig, gettext, perl, makeWrapper, shared-mime-info
, expat, glib, cairo, pango, gdk_pixbuf, atk, at-spi2-atk, gobjectIntrospection , expat, glib, cairo, pango, gdk_pixbuf, atk, at-spi2-atk, gobjectIntrospection
, xorg, epoxy, json-glib, libxkbcommon, gmp , xorg, epoxy, json-glib, libxkbcommon, gmp, gnome3
, x11Support ? stdenv.isLinux
, waylandSupport ? stdenv.isLinux, mesa_noglu, wayland, wayland-protocols , waylandSupport ? stdenv.isLinux, mesa_noglu, wayland, wayland-protocols
, xineramaSupport ? stdenv.isLinux , xineramaSupport ? stdenv.isLinux
, cupsSupport ? stdenv.isLinux, cups ? null , cupsSupport ? stdenv.isLinux, cups ? null
, darwin, gnome3 , AppKit, Cocoa
}: }:
assert cupsSupport -> cups != null; assert cupsSupport -> cups != null;
@ -36,12 +37,12 @@ stdenv.mkDerivation rec {
}) })
]; ];
buildInputs = [ libxkbcommon epoxy json-glib ]; buildInputs = [ libxkbcommon epoxy json-glib ]
++ optionals stdenv.isDarwin [ AppKit Cocoa ];
propagatedBuildInputs = with xorg; with stdenv.lib; propagatedBuildInputs = with xorg; with stdenv.lib;
[ expat glib cairo pango gdk_pixbuf atk at-spi2-atk gnome3.gsettings-desktop-schemas [ expat glib cairo pango gdk_pixbuf atk at-spi2-atk gnome3.gsettings-desktop-schemas
libXrandr libXrender libXcomposite libXi libXcursor libSM libICE ] libXrandr libXrender libXcomposite libXi libXcursor libSM libICE ]
++ optionals waylandSupport [ mesa_noglu wayland wayland-protocols ] ++ optionals waylandSupport [ mesa_noglu wayland wayland-protocols ]
++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit Cocoa ])
++ optional xineramaSupport libXinerama ++ optional xineramaSupport libXinerama
++ optional cupsSupport cups; ++ optional cupsSupport cups;
#TODO: colord? #TODO: colord?
@ -55,9 +56,9 @@ stdenv.mkDerivation rec {
"--disable-debug" "--disable-debug"
"--disable-dependency-tracking" "--disable-dependency-tracking"
"--disable-glibtest" "--disable-glibtest"
"--with-gdktarget=quartz" ] ++ optional (stdenv.isDarwin && !x11Support)
"--enable-quartz-backend" "--enable-quartz-backend"
] ++ optional stdenv.isLinux [ ++ optional x11Support [
"--enable-x11-backend" "--enable-x11-backend"
] ++ optional waylandSupport [ ] ++ optional waylandSupport [
"--enable-wayland-backend" "--enable-wayland-backend"

View File

@ -9671,7 +9671,6 @@ with pkgs;
gtk2 = callPackage ../development/libraries/gtk+/2.x.nix { gtk2 = callPackage ../development/libraries/gtk+/2.x.nix {
cupsSupport = config.gtk2.cups or stdenv.isLinux; cupsSupport = config.gtk2.cups or stdenv.isLinux;
gdktarget = if stdenv.isDarwin then "quartz" else "x11";
inherit (darwin.apple_sdk.frameworks) AppKit Cocoa; inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
}; };
@ -9679,7 +9678,9 @@ with pkgs;
gdktarget = "x11"; gdktarget = "x11";
}; };
gtk3 = callPackage ../development/libraries/gtk+/3.x.nix { }; gtk3 = callPackage ../development/libraries/gtk+/3.x.nix {
inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
};
gtkmm2 = callPackage ../development/libraries/gtkmm/2.x.nix { }; gtkmm2 = callPackage ../development/libraries/gtkmm/2.x.nix { };
gtkmm3 = callPackage ../development/libraries/gtkmm/3.x.nix { }; gtkmm3 = callPackage ../development/libraries/gtkmm/3.x.nix { };
@ -17320,7 +17321,7 @@ with pkgs;
minitube = libsForQt5.callPackage ../applications/video/minitube { }; minitube = libsForQt5.callPackage ../applications/video/minitube { };
mimic = callPackage ../applications/audio/mimic { mimic = callPackage ../applications/audio/mimic {
pulseaudioSupport = config.pulseaudio or false; pulseaudioSupport = config.pulseaudio or false;
}; };