diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2023-02-07 08:42:12 -0500 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2023-02-07 12:15:36 -0500 |
commit | 2c1fc43a4331a91deb72c1fd1e711ce170e15d90 (patch) | |
tree | 5631707ec2bee34e960072faf064cb0d92179beb | |
parent | f0636c60556efb4c0330ba69a0ecdce4a6f60b93 (diff) |
libappindicator: Clean up code a bit
- Properly through on unsupported GTK versions. - Mark mono suport broken rather than just having a comment.
-rw-r--r-- | pkgs/development/libraries/libappindicator/default.nix | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/pkgs/development/libraries/libappindicator/default.nix b/pkgs/development/libraries/libappindicator/default.nix index d1d882dd4eb5f..0819d004017c2 100644 --- a/pkgs/development/libraries/libappindicator/default.nix +++ b/pkgs/development/libraries/libappindicator/default.nix @@ -1,5 +1,3 @@ -# TODO: Resolve the issues with the Mono bindings. - { stdenv, fetchgit, lib , pkg-config, autoreconfHook , glib, dbus-glib @@ -7,12 +5,16 @@ , gtk2, libindicator-gtk2, libdbusmenu-gtk2 , gtk3, libindicator-gtk3, libdbusmenu-gtk3 , gtk-doc, vala, gobject-introspection -, monoSupport ? false, mono, gtk-sharp-2_0 +, monoSupport ? false, mono, gtk-sharp-2_0, gtk-sharp-3_0 , testers }: +let + throwBadGtkVersion = throw "unknown GTK version ${gtkVersion}"; +in + stdenv.mkDerivation (finalAttrs: { - pname = let postfix = if gtkVersion == "2" && monoSupport then "sharp" else "gtk${gtkVersion}"; + pname = let postfix = if monoSupport then "sharp" else "gtk${gtkVersion}"; in "libappindicator-${postfix}"; version = "12.10.1+20.10.20200706.1"; @@ -26,16 +28,24 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ pkg-config autoreconfHook vala gobject-introspection gtk-doc ]; - propagatedBuildInputs = - if gtkVersion == "2" - then [ gtk2 libdbusmenu-gtk2 ] - else [ gtk3 libdbusmenu-gtk3 ]; + propagatedBuildInputs = { + "2" = [ gtk2 libdbusmenu-gtk2 ]; + "3" = [ gtk3 libdbusmenu-gtk3 ]; + }.${gtkVersion} or throwBadGtkVersion; buildInputs = [ glib dbus-glib - ] ++ (if gtkVersion == "2" - then [ libindicator-gtk2 ] ++ lib.optionals monoSupport [ mono gtk-sharp-2_0 ] - else [ libindicator-gtk3 ]); + { + "2" = libindicator-gtk2; + "3" = libindicator-gtk3; + }.${gtkVersion} or throwBadGtkVersion + ] ++ lib.optionals monoSupport [ + mono + { + "2" = gtk-sharp-2_0; + "3" = gtk-sharp-3_0; + }.${gtkVersion} or throwBadGtkVersion + ]; preAutoreconf = '' gtkdocize @@ -64,8 +74,10 @@ stdenv.mkDerivation (finalAttrs: { pkgConfigModules = { "2" = [ "appindicator-0.1" ]; "3" = [ "appindicator3-0.1" ]; - }.${gtkVersion} or []; + }.${gtkVersion} or throwBadGtkVersion; platforms = platforms.linux; maintainers = [ maintainers.msteen ]; + # TODO: Resolve the issues with the Mono bindings. + broken = monoSupport && (gtkVersion != "2"); }; }) |