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