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 20message('Set gnome-shell version to ' + gnome_shell_version) 21 22gnome_shell_scss_depend_files = files([ 23'../_color-palette.scss', 24'../_st-theme.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 68foreach theme: themes 69gnome_shell_dir = join_paths(theme['dir'], 'gnome-shell') 70 71if theme['color'] != '-dark' 72gnome_shell_assets_dir = 'assets' 73else 74gnome_shell_assets_dir = 'assets-dark' 75endif 76 77install_subdir( 78gnome_shell_assets_dir, 79strip_directory: true, 80install_dir: join_paths(gnome_shell_dir, 'assets'), 81) 82 83install_subdir( 84'extensions', 85install_dir: gnome_shell_dir, 86) 87 88install_subdir( 89'icons', 90install_dir: gnome_shell_dir, 91) 92 93install_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], 101install_dir: gnome_shell_dir, 102) 103 104# 105# SCSS 106# 107 108gnome_shell_scss_conf = configuration_data() 109gnome_shell_scss_conf.set('dark_theme', theme['scss_dark_theme']) 110gnome_shell_scss_conf.set('light_topbar', theme['scss_light_topbar']) 111gnome_shell_scss_conf.set('compact', theme['scss_compact']) 112gnome_shell_scss_conf.set('version', gnome_shell_version) 113gnome_shell_scss_conf.set('current_source_dir', meson.current_source_dir()) 114 115gnome_shell_temp_name = '@0@.gnome-shell'.format(theme['name']) 116 117# Configure SCSS file 118gnome_shell_scss = configure_file( 119input: 'gnome-shell.scss.in', 120output: '@0@.scss'.format(gnome_shell_temp_name), 121configuration: gnome_shell_scss_conf, 122) 123 124# Generate CSS file 125gnome_shell_css = custom_target( 126'@0@.css'.format(gnome_shell_temp_name), 127input: gnome_shell_scss, 128output: '@0@.css'.format(gnome_shell_temp_name), 129command: [sass, sass_opts, '@INPUT@', '@OUTPUT@'], 130depend_files: gnome_shell_scss_depend_files, 131build_by_default: true, 132) 133 134# Install it while renaming to a valid name 135meson.add_install_script( 136sh, '-c', 'cp "@0@" "@1@"'.format( 137gnome_shell_css.full_path(), 138join_paths('$MESON_INSTALL_DESTDIR_PREFIX', gnome_shell_dir, 'gnome-shell.css'), 139), 140) 141endforeach 142