Skip to content

Commit

Permalink
meson: Add files in manifest as respack.py input
Browse files Browse the repository at this point in the history
This makes meson detect changes to files like default_config.json
and rebuild libresrc.cpp when necessary.
  • Loading branch information
arch1t3cht committed Jul 4, 2022
1 parent 5bde34f commit 142605c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 9 deletions.
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
@@ -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')

Expand Down
26 changes: 18 additions & 8 deletions src/libresrc/meson.build
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
fs = import('fs')

respack = find_program(meson.project_source_root() / 'tools/respack.py')

resrc = [
Expand All @@ -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)

0 comments on commit 142605c

Please sign in to comment.