meson: Add files in manifest as respack.py input
This makes meson detect changes to files like default_config.json and rebuild libresrc.cpp when necessary.
This commit is contained in:
parent
e240a5fdc2
commit
635503affe
2 changed files with 19 additions and 9 deletions
|
@ -1,6 +1,6 @@
|
|||
project('Aegisub', ['c', 'cpp'],
|
||||
license: 'BSD-3-Clause',
|
||||
meson_version: '>=0.56.1',
|
||||
meson_version: '>=0.57.0',
|
||||
default_options: ['cpp_std=c++14', 'buildtype=debugoptimized'],
|
||||
version: '3.2.2')
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
fs = import('fs')
|
||||
|
||||
respack = find_program(meson.project_source_root() / 'tools/respack.py')
|
||||
|
||||
resrc = [
|
||||
|
@ -12,17 +14,25 @@ conf_platform_json = configure_file(input: 'default_config_platform.json.in',
|
|||
configuration: conf_platform)
|
||||
|
||||
if host_machine.system() == 'darwin'
|
||||
resrc += custom_target('default_config.{cpp,h}',
|
||||
command: [respack, '@INPUT0@', '@OUTPUT@'],
|
||||
input: [files('manifest_osx.respack'), conf_platform_json],
|
||||
output: ['default_config.cpp', 'default_config.h'])
|
||||
resmanifest = 'manifest_osx.respack'
|
||||
else
|
||||
resrc += custom_target('default_config.{cpp,h}',
|
||||
command: [respack, '@INPUT0@', '@OUTPUT@'],
|
||||
input: [files('manifest.respack'), conf_platform_json],
|
||||
output: ['default_config.cpp', 'default_config.h'])
|
||||
resmanifest = 'manifest.respack'
|
||||
endif
|
||||
|
||||
resmanifest_files = [conf_platform_json]
|
||||
# Filter out the files we've generated ourselves
|
||||
foreach rfile : fs.read(resmanifest).strip().split('\n')
|
||||
rfile_s = rfile.strip()
|
||||
if fs.is_file(rfile_s)
|
||||
resmanifest_files += files(rfile_s)
|
||||
endif
|
||||
endforeach
|
||||
|
||||
resrc += custom_target('default_config.{cpp,h}',
|
||||
command: [respack, '@INPUT0@', '@OUTPUT@'],
|
||||
input: [files(resmanifest), resmanifest_files],
|
||||
output: ['default_config.cpp', 'default_config.h'])
|
||||
|
||||
|
||||
libresrc_inc = include_directories('.')
|
||||
libresrc = static_library('resrc', 'libresrc.cpp', resrc, include_directories: deps_inc, dependencies: deps)
|
||||
|
|
Loading…
Reference in a new issue