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