meson: Install groups of assets at once

This speeds up installation significantly, as the custom python
install script does not get invoked separately for each installed
file.
This commit is contained in:
Joonas Henriksson 2021-12-18 23:40:28 +02:00
parent 001b5a0efd
commit d9e2940980
No known key found for this signature in database
GPG Key ID: FAEDBC4FB5AA3B17
3 changed files with 29 additions and 22 deletions

View File

@ -44,22 +44,28 @@ foreach variant : get_option('variants')
install_dir : prefix / install_dir.get(variant) / common_dirs.get('gtk2') / 'menubar-toolbar',
)
full_path_base_assets = []
foreach asset : variant == 'dark' ? gtk2_dark_assets : gtk2_light_assets
meson.add_install_script(
install_file,
asset.full_path(),
'$MESON_INSTALL_DESTDIR_PREFIX' / install_dir.get(variant) / common_dirs.get('gtk2') / 'assets'
)
full_path_base_assets += asset.full_path()
endforeach
meson.add_install_script(
install_file,
full_path_base_assets,
'$MESON_INSTALL_DESTDIR_PREFIX' / install_dir.get(variant) / common_dirs.get('gtk2') / 'assets'
)
full_path_light_menubar_toolbar_assets = []
foreach asset : light_menubar_toolbar_assets
meson.add_install_script(
install_file,
meson.current_build_dir() / 'light' / asset + '.png',
'$MESON_INSTALL_DESTDIR_PREFIX' / install_dir.get(variant) / common_dirs.get('gtk2') / 'menubar-toolbar'
)
full_path_light_menubar_toolbar_assets += meson.current_build_dir() / 'light' / asset + '.png'
endforeach
meson.add_install_script(
install_file,
full_path_light_menubar_toolbar_assets,
'$MESON_INSTALL_DESTDIR_PREFIX' / install_dir.get(variant) / common_dirs.get('gtk2') / 'menubar-toolbar'
)
if variant == 'dark' or variant == 'darker'
foreach asset : dark_menubar_toolbar_assets
meson.add_install_script(

View File

@ -10,13 +10,11 @@ foreach variant : get_option('variants')
# custom install script is necessary here, since install_subdir() currently installs
# the symlink target file, instead of the actual symlink, which doesn't install
# dark variant correctly
foreach asset : base_svg_assets
meson.add_install_script(
install_file,
asset,
'$MESON_INSTALL_DESTDIR_PREFIX' / install_dir.get(variant) / common_dirs.get('unity')
)
endforeach
meson.add_install_script(
install_file,
base_svg_assets,
'$MESON_INSTALL_DESTDIR_PREFIX' / install_dir.get(variant) / common_dirs.get('unity')
)
install_subdir(
'dash',

View File

@ -25,11 +25,14 @@ foreach variant : get_option('variants')
install_dir : prefix / install_dir.get(variant) / common_dirs.get('xfwm')
)
full_path_assets = []
foreach asset : assets
meson.add_install_script(
install_file,
asset.full_path(),
'$MESON_INSTALL_DESTDIR_PREFIX' / install_dir.get(variant) / common_dirs.get('xfwm')
)
full_path_assets += asset.full_path()
endforeach
meson.add_install_script(
install_file,
full_path_assets,
'$MESON_INSTALL_DESTDIR_PREFIX' / install_dir.get(variant) / common_dirs.get('xfwm')
)
endforeach