1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# ggaze — GNOME Gaze
#
# A small, fast, native image viewer for Fedora Linux, written in C with
# GTK4. Full design lives in docs/; this file is the build root. Phase 0
# establishes the build/test/CI/convention harness — no production sources
# yet (they arrive from M0; see docs/roadmap.md).
project('ggaze', 'c',
version : '0.1.0',
license : 'GPL-3.0-or-later',
meson_version : '>= 1.1',
default_options : [
'warning_level=2', # -Wall -Wextra
'c_std=c11',
'b_pie=true',
],
)
# --- Always-required dependencies (the core viewer needs all of these) ---
gtk4_dep = dependency('gtk4')
glib_dep = dependency('glib-2.0')
gio_dep = dependency('gio-2.0')
adwaita_dep = dependency('libadwaita-1')
# --- Optional backends (feature: auto/disabled/enabled). See meson_options.txt.
gegl_dep = dependency('gegl-0.4', required : get_option('gegl'))
jxl_dep = dependency('libjxl', required : get_option('jxl'))
avif_dep = dependency('libavif', required : get_option('avif'))
heif_dep = dependency('libheif', required : get_option('heif'))
# --- Generated config header (app id, version, feature flags) ---
conf = configuration_data()
conf.set_quoted('GGAZE_VERSION', meson.project_version())
conf.set_quoted('GGAZE_APP_ID', 'org.buetow.ggaze')
conf.set('GGAZE_HAVE_GEGL', gegl_dep.found() ? 1 : 0)
conf.set('GGAZE_HAVE_JXL', jxl_dep.found() ? 1 : 0)
conf.set('GGAZE_HAVE_AVIF', avif_dep.found() ? 1 : 0)
conf.set('GGAZE_HAVE_HEIF', heif_dep.found() ? 1 : 0)
ggaze_conf_h = configure_file(
input : 'ggaze-config.h.in',
output : 'ggaze-config.h',
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).
inc = include_directories('.')
subdir('src')
subdir('tests')
|