meson.build
ASCII text
1
gnome_shell = find_program('gnome-shell', required: false)
2
3
if get_option('gnome_shell_version') != ''
4
gnome_shell_full_version = get_option('gnome_shell_version')
5
elif gnome_shell.found()
6
gnome_shell_full_version = run_command(gnome_shell, '--version').stdout().split()[-1]
7
else
8
message('gnome-shell not found, using styles for last gnome-shell version availible')
9
gnome_shell_full_version = '3.38'
10
endif
11
12
gnome_shell_version_array = gnome_shell_full_version.split('.')
13
if gnome_shell_version_array[0].version_compare('>= 40')
14
gnome_shell_version = gnome_shell_version_array[0]
15
elif gnome_shell_version_array[1].to_int().is_even()
16
gnome_shell_version = gnome_shell_version_array[0] + '.' + gnome_shell_version_array[1]
17
else
18
gnome_shell_version = gnome_shell_version_array[0] + '.' + (gnome_shell_version_array[1].to_int() + 1).to_string()
19
endif
20
message('Set gnome-shell version to ' + gnome_shell_version)
21
22
gnome_shell_scss_depend_files = files([
23
'../_color-palette.scss',
24
'../_shadow.scss',
25
'../_theme.scss',
26
'../_theme-color.scss',
27
'sass/components/base/_base.scss',
28
'sass/components/base/_button.scss',
29
'sass/components/base/_check-box.scss',
30
'sass/components/base/_entry.scss',
31
'sass/components/base/_scrollbar.scss',
32
'sass/components/base/_slider.scss',
33
'sass/components/base/_switch.scss',
34
'sass/components/dialog/_dialog.scss',
35
'sass/components/dialog/_network-dialog.scss',
36
'sass/components/gdm/_login-dialog.scss',
37
'sass/components/gdm/_screen-shield.scss',
38
'sass/components/menu/_calendar.scss',
39
'sass/components/menu/_candidate-popup.scss',
40
'sass/components/menu/_menu.scss',
41
'sass/components/menu/_message-list.scss',
42
'sass/components/misc/_a11y.scss',
43
'sass/components/misc/_keyboard.scss',
44
'sass/components/misc/_looking-glass.scss',
45
'sass/components/misc/_misc.scss',
46
'sass/components/misc/_tile-preview.scss',
47
'sass/components/notification/_hotplug.scss',
48
'sass/components/notification/_notification.scss',
49
'sass/components/osd/_osd.scss',
50
'sass/components/osd/_switcher.scss',
51
'sass/components/osd/_workspace-switcher.scss',
52
'sass/components/overview/_app-grid.scss',
53
'sass/components/overview/_dash.scss',
54
'sass/components/overview/_overview.scss',
55
'sass/components/overview/_search-entry.scss',
56
'sass/components/overview/_search-results.scss',
57
'sass/components/overview/_window-picker.scss',
58
'sass/components/overview/_workspace-thumbnails.scss',
59
'sass/components/panel/_panel.scss',
60
'sass/components/panel/_ripple-box.scss',
61
'sass/components/_index.scss',
62
'sass/_drawing.scss',
63
'sass/_extensions.scss',
64
'sass/_gnome-shell.scss',
65
'sass/_typography.scss',
66
])
67
68
foreach theme: themes
69
gnome_shell_dir = join_paths(theme['dir'], 'gnome-shell')
70
71
if theme['color'] != '-dark'
72
gnome_shell_assets_dir = 'assets'
73
else
74
gnome_shell_assets_dir = 'assets-dark'
75
endif
76
77
install_subdir(
78
gnome_shell_assets_dir,
79
strip_directory: true,
80
install_dir: join_paths(gnome_shell_dir, 'assets'),
81
)
82
83
install_subdir(
84
'extensions',
85
install_dir: gnome_shell_dir,
86
)
87
88
install_subdir(
89
'icons',
90
install_dir: gnome_shell_dir,
91
)
92
93
install_data(
94
[
95
'gnome-shell-start.svg',
96
'gnome-shell-theme.gresource.xml',
97
'noise-texture.png',
98
'pad-osd.css',
99
'process-working.svg',
100
],
101
install_dir: gnome_shell_dir,
102
)
103
104
#
105
# SCSS
106
#
107
108
gnome_shell_scss_conf = configuration_data()
109
gnome_shell_scss_conf.set('dark_theme', theme['scss_dark_theme'])
110
gnome_shell_scss_conf.set('light_topbar', theme['scss_light_topbar'])
111
gnome_shell_scss_conf.set('compact', theme['scss_compact'])
112
gnome_shell_scss_conf.set('version', gnome_shell_version)
113
gnome_shell_scss_conf.set('current_source_dir', meson.current_source_dir())
114
115
gnome_shell_temp_name = '@0@.gnome-shell'.format(theme['name'])
116
117
# Configure SCSS file
118
gnome_shell_scss = configure_file(
119
input: 'gnome-shell.scss.in',
120
output: '@0@.scss'.format(gnome_shell_temp_name),
121
configuration: gnome_shell_scss_conf,
122
)
123
124
# Generate CSS file
125
gnome_shell_css = custom_target(
126
'@0@.css'.format(gnome_shell_temp_name),
127
input: gnome_shell_scss,
128
output: '@0@.css'.format(gnome_shell_temp_name),
129
command: [sass, sass_opts, '@INPUT@', '@OUTPUT@'],
130
depend_files: gnome_shell_scss_depend_files,
131
build_by_default: true,
132
)
133
134
# Install it while renaming to a valid name
135
meson.add_install_script(
136
sh, '-c', 'cp "@0@" "@1@"'.format(
137
gnome_shell_css.full_path(),
138
join_paths('$MESON_INSTALL_DESTDIR_PREFIX', gnome_shell_dir, 'gnome-shell.css'),
139
),
140
)
141
endforeach
142