diff --git a/data/meson.build b/data/meson.build index 25a81422f..4a1e16d46 100644 --- a/data/meson.build +++ b/data/meson.build @@ -41,6 +41,7 @@ foreach service_file : service_files ) endforeach +theme_deps = [] subdir('dbus-interfaces') subdir('icons') diff --git a/data/theme/meson.build b/data/theme/meson.build index b0e08128e..87112c358 100644 --- a/data/theme/meson.build +++ b/data/theme/meson.build @@ -42,20 +42,21 @@ theme_sources = files([ 'gnome-shell-sass/widgets/_workspace-thumbnails.scss' ]) -styles = [ - 'gnome-shell-high-contrast', - 'gnome-shell' +stylesheets = [ + 'gnome-shell-high-contrast.css', + 'gnome-shell.css' ] -theme_deps = [] - -foreach style: styles - theme_deps += custom_target('style-' + style, - input: '@0@.scss'.format(style), - output: '@0@.css'.format(style), - command: [ - sassc, '-a', '@INPUT@', '@OUTPUT@' - ], - depend_files: theme_sources) +foreach stylesheet: stylesheets + if not fs.exists(stylesheet) + sassc = find_program('sassc') + theme_deps += custom_target(stylesheet, + input: fs.replace_suffix(stylesheet, '.scss'), + output: stylesheet, + command: [ + sassc, '-a', '@INPUT@', '@OUTPUT@' + ], + depend_files: theme_sources) + endif endforeach diff --git a/meson.build b/meson.build index 4c913ff86..b08c8dad5 100644 --- a/meson.build +++ b/meson.build @@ -137,7 +137,6 @@ endif mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir') python = find_program('python3') -sassc = find_program('sassc') gjs = find_program('gjs') cc = meson.get_compiler('c') @@ -293,6 +292,7 @@ endif meson.add_install_script('meson/postinstall.py') meson.add_dist_script('meson/generate-manpages.py') +meson.add_dist_script('meson/generate-stylesheets.py') summary_options = { 'networkmanager': get_option('networkmanager'), diff --git a/meson/generate-stylesheets.py b/meson/generate-stylesheets.py new file mode 100644 index 000000000..35242c68f --- /dev/null +++ b/meson/generate-stylesheets.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 + +import os +from pathlib import PurePath +import subprocess + +stylesheets = [ + 'data/theme/gnome-shell-high-contrast.css', + 'data/theme/gnome-shell.css' +] + +sourceroot = os.environ.get('MESON_SOURCE_ROOT') +distroot = os.environ.get('MESON_DIST_ROOT') + +for stylesheet in stylesheets: + stylesheet_path = PurePath(stylesheet) + src = PurePath(sourceroot, stylesheet_path.with_suffix('.scss')) + dst = PurePath(distroot, stylesheet_path) + subprocess.call(['sassc', '-a', src, dst])