meson.build
ASCII text
1
gtk4_launch = find_program('gtk4-launch', required: false)
2
3
if get_option('gtk4_version') != ''
4
gtk4_full_version = get_option('gtk4_version')
5
elif gtk4_launch.found()
6
gtk4_full_version = run_command(gtk4_launch, '--version').stdout()
7
else
8
message('gtk4-launch not found, using styles for last gtk4 version availible')
9
gtk4_full_version = '4.0'
10
endif
11
12
gtk4_version_array = gtk4_full_version.split('.')
13
if gtk4_version_array[1].to_int().is_even()
14
gtk4_version = gtk4_version_array[0] + '.' + gtk4_version_array[1]
15
else
16
gtk4_version = gtk4_version_array[0] + '.' + (gtk4_version_array[1].to_int() + 1).to_string()
17
endif
18
19
gtk4_scss_depend_files = files([
20
'../_color-palette.scss',
21
'../_colors.scss',
22
'../_variables.scss',
23
'../gtk-3.0/sass/_colors-public.scss',
24
'sass/_common.scss',
25
'sass/_drawing.scss',
26
])
27
28
foreach theme: themes
29
gtk4_dir = join_paths(theme['dir'], 'gtk-4.0')
30
31
gtk4_variants = [
32
'',
33
]
34
35
# Only non-dark themes need a dark variant.
36
if theme['color'] != '-dark'
37
gtk4_variants += '-dark'
38
endif
39
40
install_subdir(
41
'../gtk-3.0/assets',
42
install_dir: gtk4_dir,
43
)
44
45
install_subdir(
46
'../gtk-3.0/icons',
47
install_dir: gtk4_dir,
48
)
49
50
#
51
# SCSS
52
#
53
54
gtk4_scss_conf = configuration_data()
55
gtk4_scss_conf.set('dark_theme', theme['scss_dark_theme'])
56
gtk4_scss_conf.set('light_topbar', theme['scss_light_topbar'])
57
gtk4_scss_conf.set('compact', theme['scss_compact'])
58
gtk4_scss_conf.set('version', gtk4_version)
59
60
foreach gtk4_variant: gtk4_variants
61
gtk4_temp_name = 'gtk@0@.@1@'.format(gtk4_variant, theme['name'])
62
63
# Configure SCSS file
64
gtk4_scss = configure_file(
65
input: 'gtk@0@.scss.in'.format(gtk4_variant),
66
output: '@0@.scss'.format(gtk4_temp_name),
67
configuration: gtk4_scss_conf,
68
)
69
70
# Copy it from build dir to source dir
71
run_command(
72
'cp',
73
gtk4_scss,
74
meson.current_source_dir(),
75
)
76
77
# Generate CSS file
78
gtk4_css = custom_target(
79
'@0@.css'.format(gtk4_temp_name),
80
input: '@0@.scss'.format(gtk4_temp_name),
81
output: '@0@.css'.format(gtk4_temp_name),
82
command: [sassc, sassc_opts, '@INPUT@', '@OUTPUT@'],
83
depend_files: gtk4_scss_depend_files,
84
build_by_default: true,
85
)
86
87
# Install it while renaming to a valid name
88
meson.add_install_script(
89
'sh', '-c', 'cp "@0@" "@1@"'.format(
90
gtk4_css.full_path(),
91
join_paths('$MESON_INSTALL_DESTDIR_PREFIX', gtk4_dir, 'gtk@0@.css'.format(gtk4_variant)),
92
),
93
)
94
endforeach
95
endforeach
96