From 63fe99809fbe59d4981d3cbf5bbe04b4a0ee2ed4 Mon Sep 17 00:00:00 2001 From: hanna Date: Thu, 2 Nov 2023 21:54:05 -0700 Subject: [PATCH 1/4] remove hard dependency on libadwaita --- build.zig | 10 +++++++++- src/apprt/gtk/App.zig | 21 ++++++++++++--------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/build.zig b/build.zig index 7b7f0ce94..812e8f639 100644 --- a/build.zig +++ b/build.zig @@ -39,6 +39,7 @@ var flatpak: bool = false; var app_runtime: apprt.Runtime = .none; var renderer_impl: renderer.Impl = .opengl; var font_backend: font.Backend = .freetype; +var libadwaita: bool = false; pub fn build(b: *std.Build) !void { const optimize = b.standardOptimizeOption(.{}); @@ -87,6 +88,12 @@ pub fn build(b: *std.Build) !void { "The app runtime to use. Not all values supported on all platforms.", ) orelse apprt.Runtime.default(target); + libadwaita = b.option( + bool, + "libadwaita", + "Enables the use of libadwaita when using the gtk rendering backend.", + ) orelse false; + renderer_impl = b.option( renderer.Impl, "renderer", @@ -203,6 +210,7 @@ pub fn build(b: *std.Build) !void { exe_options.addOption(apprt.Runtime, "app_runtime", app_runtime); exe_options.addOption(font.Backend, "font_backend", font_backend); exe_options.addOption(renderer.Impl, "renderer", renderer_impl); + exe_options.addOption(bool, "libadwaita", libadwaita); // Exe if (exe_) |exe| { @@ -814,7 +822,7 @@ fn addDeps( .gtk => { step.linkSystemLibrary2("gtk4", dynamic_link_opts); - step.linkSystemLibrary2("adwaita-1", dynamic_link_opts); + if (libadwaita) step.linkSystemLibrary2("adwaita-1", dynamic_link_opts); }, } } diff --git a/src/apprt/gtk/App.zig b/src/apprt/gtk/App.zig index f5f93c38f..5e5c143b4 100644 --- a/src/apprt/gtk/App.zig +++ b/src/apprt/gtk/App.zig @@ -19,6 +19,7 @@ const internal_os = @import("../../os/main.zig"); const Config = configpkg.Config; const CoreApp = @import("../../App.zig"); const CoreSurface = @import("../../Surface.zig"); +const build_options = @import("build_options"); const Surface = @import("Surface.zig"); const Window = @import("Window.zig"); @@ -53,7 +54,7 @@ pub fn init(core_app: *CoreApp, opts: Options) !App { _ = opts; // Initialize libadwaita - c.adw_init(); + if (build_options.libadwaita) c.adw_init(); // Load our configuration var config = try Config.load(core_app.alloc); @@ -67,14 +68,16 @@ pub fn init(core_app: *CoreApp, opts: Options) !App { } // Set the style based on our configuration file - c.adw_style_manager_set_color_scheme( - c.adw_style_manager_get_default(), - switch (config.@"window-theme") { - .system => c.ADW_COLOR_SCHEME_PREFER_LIGHT, - .dark => c.ADW_COLOR_SCHEME_FORCE_DARK, - .light => c.ADW_COLOR_SCHEME_FORCE_LIGHT, - }, - ); + if (build_options.libadwaita) { + c.adw_style_manager_set_color_scheme( + c.adw_style_manager_get_default(), + switch (config.@"window-theme") { + .system => c.ADW_COLOR_SCHEME_PREFER_LIGHT, + .dark => c.ADW_COLOR_SCHEME_FORCE_DARK, + .light => c.ADW_COLOR_SCHEME_FORCE_LIGHT, + }, + ); + } // The "none" cursor is used for hiding the cursor const cursor_none = c.gdk_cursor_new_from_name("none", null); From 5a161719cc4e0516d7d5a9bc48a58ffd590b76b9 Mon Sep 17 00:00:00 2001 From: hanna Date: Thu, 2 Nov 2023 21:58:56 -0700 Subject: [PATCH 2/4] Update gtk build test to use libadwaita --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d46748584..d57263696 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -132,7 +132,7 @@ jobs: run: nix develop -c zig build -Dapp-runtime=none test - name: Test GTK Build - run: nix develop -c zig build -Dapp-runtime=gtk + run: nix develop -c zig build -Dapp-runtime=gtk -Dlibadwaita=true - name: Test GLFW Build run: nix develop -c zig build -Dapp-runtime=glfw From 915f1f5e625d526ebc62ed2516b026518d285a94 Mon Sep 17 00:00:00 2001 From: hanna Date: Thu, 2 Nov 2023 22:03:11 -0700 Subject: [PATCH 3/4] change option name and default value --- build.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.zig b/build.zig index 812e8f639..1daee193e 100644 --- a/build.zig +++ b/build.zig @@ -90,9 +90,9 @@ pub fn build(b: *std.Build) !void { libadwaita = b.option( bool, - "libadwaita", + "gtk-libadwaita", "Enables the use of libadwaita when using the gtk rendering backend.", - ) orelse false; + ) orelse true; renderer_impl = b.option( renderer.Impl, From 3bee252389f0113494991224c43936750c862111 Mon Sep 17 00:00:00 2001 From: hanna Date: Thu, 2 Nov 2023 22:05:28 -0700 Subject: [PATCH 4/4] Correct the option on the ci workflow --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d57263696..abf4a1633 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -132,7 +132,7 @@ jobs: run: nix develop -c zig build -Dapp-runtime=none test - name: Test GTK Build - run: nix develop -c zig build -Dapp-runtime=gtk -Dlibadwaita=true + run: nix develop -c zig build -Dapp-runtime=gtk -Dgtk-libadwaita=true - name: Test GLFW Build run: nix develop -c zig build -Dapp-runtime=glfw