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 1/5] 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 { }; From 51e07dffd0dd320135b42cb697916541cc9c1829 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 1 Nov 2022 00:34:41 +0100 Subject: [PATCH 2/5] clutter: fix build on darwin --- .../development/libraries/clutter/default.nix | 60 ++++++++++++++++--- 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/clutter/default.nix b/pkgs/development/libraries/clutter/default.nix index 2bf1162fe192..80c4187c951c 100644 --- a/pkgs/development/libraries/clutter/default.nix +++ b/pkgs/development/libraries/clutter/default.nix @@ -1,6 +1,26 @@ -{ lib, stdenv, fetchurl, pkg-config, libGLU, libGL, libX11, libXext, libXfixes -, libXdamage, libXcomposite, libXi, libxcb, cogl, pango, atk, json-glib -, gobject-introspection, gtk3, gnome, libinput, libgudev, libxkbcommon +{ lib +, stdenv +, fetchurl +, pkg-config +, libGLU +, libGL +, libX11 +, libXext +, libXfixes +, libXdamage +, libXcomposite +, libXi +, libxcb +, cogl +, pango +, atk +, json-glib +, gobject-introspection +, gtk3 +, gnome +, libinput +, libgudev +, libxkbcommon }: let @@ -19,12 +39,34 @@ stdenv.mkDerivation rec { buildInputs = [ gtk3 ]; nativeBuildInputs = [ pkg-config gobject-introspection ]; - propagatedBuildInputs = - [ libX11 libGL libGLU libXext libXfixes libXdamage libXcomposite libXi cogl pango - atk json-glib gobject-introspection libxcb libinput libgudev libxkbcommon - ]; + propagatedBuildInputs = [ + cogl + pango + atk + json-glib + gobject-introspection + ] ++ lib.optionals (!stdenv.isDarwin) [ + libX11 + libGL + libGLU + libXext + libXfixes + libXdamage + libXcomposite + libXi + libxcb + libinput + libgudev + libxkbcommon + ]; - configureFlags = [ "--enable-introspection" ]; # needed by muffin AFAIK + configureFlags = [ + "--enable-introspection" # needed by muffin AFAIK + ] ++ lib.optionals stdenv.isDarwin [ + "--without-x" + "--enable-x11-backend=no" + "--enable-quartz-backend=yes" + ]; #doCheck = true; # no tests possible without a display @@ -57,6 +99,6 @@ stdenv.mkDerivation rec { homepage = "http://www.clutter-project.org/"; maintainers = with lib.maintainers; [ ]; - platforms = lib.platforms.mesaPlatforms; + platforms = lib.platforms.unix; }; } From 7f25fde30da558c29bde3d275857e38c6beb755e Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 1 Nov 2022 00:34:55 +0100 Subject: [PATCH 3/5] clutter-gst: add darwin support --- pkgs/development/libraries/clutter-gst/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/clutter-gst/default.nix b/pkgs/development/libraries/clutter-gst/default.nix index e4752c7748be..71e32e074c8f 100644 --- a/pkgs/development/libraries/clutter-gst/default.nix +++ b/pkgs/development/libraries/clutter-gst/default.nix @@ -31,6 +31,6 @@ stdenv.mkDerivation rec { license = lib.licenses.lgpl2Plus; maintainers = with lib.maintainers; [ ]; - platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice + platforms = lib.platforms.unix; }; } From 6b93450a5c284f873f71a7c81d2dd5745808e2eb Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 1 Nov 2022 00:35:08 +0100 Subject: [PATCH 4/5] clutter-gtk: add darwin support --- .../libraries/clutter-gtk/default.nix | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/clutter-gtk/default.nix b/pkgs/development/libraries/clutter-gtk/default.nix index 7573da66c0d8..31743a8f6895 100644 --- a/pkgs/development/libraries/clutter-gtk/default.nix +++ b/pkgs/development/libraries/clutter-gtk/default.nix @@ -1,5 +1,14 @@ -{ fetchurl, lib, stdenv, pkg-config, meson, ninja -, gobject-introspection, clutter, gtk3, gnome }: +{ fetchurl +, lib +, stdenv +, pkg-config +, meson +, ninja +, gobject-introspection +, clutter +, gtk3 +, gnome +}: let pname = "clutter-gtk"; @@ -19,6 +28,12 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ clutter gtk3 ]; nativeBuildInputs = [ meson ninja pkg-config gobject-introspection ]; + postPatch = '' + # ld: malformed 32-bit x.y.z version number: =1 + substituteInPlace meson.build \ + --replace "host_system == 'darwin'" "false" + ''; + postBuild = "rm -rf $out/share/gtk-doc"; passthru = { @@ -33,6 +48,6 @@ stdenv.mkDerivation rec { homepage = "http://www.clutter-project.org/"; license = lib.licenses.lgpl2Plus; maintainers = with lib.maintainers; [ ]; - platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice + platforms = lib.platforms.unix; }; } From bc0889b9e2877cb7e18b84bcf2fdeb6336a332cc Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 1 Nov 2022 02:17:07 +0100 Subject: [PATCH 5/5] cogl: cleanup --- pkgs/development/libraries/cogl/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix index 82b1fd1a0a1f..74f09ce29283 100644 --- a/pkgs/development/libraries/cogl/default.nix +++ b/pkgs/development/libraries/cogl/default.nix @@ -59,14 +59,13 @@ stdenv.mkDerivation rec { "--enable-kms-egl-platform" "--enable-wayland-egl-platform" "--enable-wayland-egl-server" - ] ++ lib.optionals gstreamerSupport [ - "--enable-cogl-gst" - ] ++ lib.optionals (!stdenv.isDarwin) [ "--enable-gles1" "--enable-gles2" ] ++ lib.optionals stdenv.isDarwin [ "--disable-glx" "--without-x" + ] ++ lib.optionals gstreamerSupport [ + "--enable-cogl-gst" ]; # TODO: this shouldn't propagate so many things