From fb2032f86c6b1b80d50a5f73c298e79e925588dc Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 1 Nov 2022 00:34:03 +0100 Subject: [PATCH] cogl: fix build on darwin --- pkgs/development/libraries/cogl/default.nix | 75 ++++++++++++++++----- pkgs/top-level/all-packages.nix | 4 +- 2 files changed, 61 insertions(+), 18 deletions(-) diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix index 7eef53e4c625..82b1fd1a0a1f 100644 --- a/pkgs/development/libraries/cogl/default.nix +++ b/pkgs/development/libraries/cogl/default.nix @@ -1,7 +1,27 @@ -{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libGL, glib, gdk-pixbuf, xorg, libintl -, pangoSupport ? true, pango, cairo, gobject-introspection, wayland, gnome -, mesa, automake, autoconf -, gstreamerSupport ? true, gst_all_1 }: +{ lib +, stdenv +, fetchurl +, fetchpatch +, pkg-config +, libGL +, glib +, gdk-pixbuf +, xorg +, libintl +, pangoSupport ? true +, pango +, cairo +, gobject-introspection +, wayland +, gnome +, mesa +, automake +, autoconf +, gstreamerSupport ? true +, gst_all_1 +, harfbuzz +, OpenGL +}: stdenv.mkDerivation rec { pname = "cogl"; @@ -35,26 +55,47 @@ stdenv.mkDerivation rec { configureFlags = [ "--enable-introspection" + ] ++ lib.optionals (!stdenv.isDarwin) [ "--enable-kms-egl-platform" "--enable-wayland-egl-platform" "--enable-wayland-egl-server" - ] ++ lib.optional gstreamerSupport "--enable-cogl-gst" - ++ lib.optionals (!stdenv.isDarwin) [ "--enable-gles1" "--enable-gles2" ]; + ] ++ lib.optionals gstreamerSupport [ + "--enable-cogl-gst" + ] ++ lib.optionals (!stdenv.isDarwin) [ + "--enable-gles1" + "--enable-gles2" + ] ++ lib.optionals stdenv.isDarwin [ + "--disable-glx" + "--without-x" + ]; # TODO: this shouldn't propagate so many things # especially not gobject-introspection - propagatedBuildInputs = with xorg; [ - glib gdk-pixbuf gobject-introspection wayland mesa - libGL libXrandr libXfixes libXcomposite libXdamage - ] - ++ lib.optionals gstreamerSupport [ gst_all_1.gstreamer - gst_all_1.gst-plugins-base ]; + propagatedBuildInputs = [ + glib + gdk-pixbuf + gobject-introspection + ] ++ lib.optionals stdenv.isLinux [ + wayland + mesa + libGL + xorg.libXrandr + xorg.libXfixes + xorg.libXcomposite + xorg.libXdamage + ] ++ lib.optionals gstreamerSupport [ + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + ]; - buildInputs = lib.optionals pangoSupport [ pango cairo ]; + buildInputs = lib.optionals pangoSupport [ pango cairo harfbuzz ] + ++ lib.optionals stdenv.isDarwin [ OpenGL ]; - COGL_PANGO_DEP_CFLAGS - = lib.optionalString (stdenv.isDarwin && pangoSupport) - "-I${pango.dev}/include/pango-1.0 -I${cairo.dev}/include/cairo"; + COGL_PANGO_DEP_CFLAGS = toString (lib.optionals (stdenv.isDarwin && pangoSupport) [ + "-I${pango.dev}/include/pango-1.0" + "-I${cairo.dev}/include/cairo" + "-I${harfbuzz.dev}/include/harfbuzz" + ]); #doCheck = true; # all tests fail (no idea why) @@ -76,7 +117,7 @@ stdenv.mkDerivation rec { render without stepping on each other's toes. ''; - platforms = platforms.mesaPlatforms; + platforms = platforms.unix; license = with licenses; [ mit bsd3 publicDomain sgi-b-20 ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f923ae0d2456..73d55be1c400 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18306,7 +18306,9 @@ with pkgs; coercer = callPackage ../tools/security/coercer { }; - cogl = callPackage ../development/libraries/cogl { }; + cogl = callPackage ../development/libraries/cogl { + inherit (darwin.apple_sdk.frameworks) OpenGL; + }; coin3d = callPackage ../development/libraries/coin3d { };