summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-07-12 17:30:26 +0300
committerPaul Buetow <paul@buetow.org>2026-07-12 17:30:26 +0300
commit547b810eea19b0c72731e30ca3e2e339593c1833 (patch)
treee19fc9308d2f93ffd1d558ec705effc6d9ffb752 /meson.build
parent1770b12d5d95476310c27ccf39a91b5ba4a3f119 (diff)
skeleton: GtkApplication, window, GSettings schema, desktop, tests (ft0)
M0 (task ft0): the app shell — no feature views yet (those are M1 large, M7 grid). - src/main.c: g_application_run + --version via handle-local-options (--help is GApplication's own); exits before activate so --version works headless. - src/app.{c,h}: GgazeApp : AdwApplication : GtkApplication (libadwaita styling, decision #29), single-instance (decision #32), G_APPLICATION_HANDLES_OPEN; activate + open reuse the active window (replace-on-new-open); ggaze_window_open remembers the GFile. - src/window.{c,h}: GgazeWindow : GtkApplicationWindow with AdwHeaderBar and a GtkStack (children 'grid'/'large', default 'grid'); dispose clears the file. - data/org.buetow.ggaze.desktop (image/* MIME, validated) and data/org.buetow.ggaze.gschema.xml (all keys + defaults, --strict clean). - meson: libggaze static lib shared by the executable and tests; install to bindir/applications/glib-2.0 schemas; gnome.post_install compiles schemas + updates desktop db. - tests: unit test_app (--version/--help/unknown via subprocess), integration test_window (offscreen stack checks + open-titles), bootstrap. 3/3 green. - docs/tech-stack.md: window-geometry shape corrected to (width,height, fullscreen,maximized) to match the schema.
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build18
1 files changed, 16 insertions, 2 deletions
diff --git a/meson.build b/meson.build
index 4c67730..e21b70c 100644
--- a/meson.build
+++ b/meson.build
@@ -43,9 +43,23 @@ ggaze_conf_h = configure_file(
configuration : conf,
)
-# Include path: source root (generated header lands in the build root, which
-# meson adds automatically for targets that list ggaze_conf_h as a source).
+# Include paths: source root (generated header) + src/ (module headers).
inc = include_directories('.')
+src_inc = include_directories('src')
+
+# --- ggaze library: the app + window (shared between the executable and
+# tests so the GApplication/GtkApplicationWindow code is exercised without
+# duplicating sources). Plain-C modules will join this library as they
+# land (navigator, trash, mover, ...).
+ggaze_lib = static_library('ggaze',
+ files('src/app.c', 'src/window.c'),
+ include_directories : [inc, src_inc],
+ dependencies : [gtk4_dep, glib_dep, gio_dep, adwaita_dep],
+ install : false,
+)
+
+ggaze_deps = [gtk4_dep, glib_dep, gio_dep, adwaita_dep]
subdir('src')
+subdir('data')
subdir('tests') \ No newline at end of file