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