theme: Pre-generate stylesheets as well

Since commit 9ef9a5ff8a, man pages are generated at dist time to reduce
build dependencies when building from a released tarball.

Do the same for the stylesheets to also remove the sassc dependency.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1555>
This commit is contained in:
Florian Müllner 2020-12-29 00:01:03 +01:00
parent 9ef9a5ff8a
commit eafbfdfa07
4 changed files with 35 additions and 14 deletions

View File

@ -41,6 +41,7 @@ foreach service_file : service_files
)
endforeach
theme_deps = []
subdir('dbus-interfaces')
subdir('icons')

View File

@ -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),
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

View File

@ -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'),

View File

@ -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])