Message ID | 20210709012533.58262-1-akihiko.odaki@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | meson: Use input/output for entitlements target | expand |
On 09/07/21 03:25, Akihiko Odaki wrote: > input/output parameters respect dependencies. > > Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com> > --- > meson.build | 30 +++++++++++++++++------------- > scripts/entitlement.sh | 10 +++++----- > 2 files changed, 22 insertions(+), 18 deletions(-) > > diff --git a/meson.build b/meson.build > index 7e12de01bec..d21adecc0d8 100644 > --- a/meson.build > +++ b/meson.build > @@ -2521,28 +2521,32 @@ foreach target : target_dirs > link_args: link_args, > gui_app: exe['gui']) > > - if 'CONFIG_HVF' in config_target > - entitlements = meson.current_source_dir() / 'accel/hvf/entitlements.plist' > - else > - entitlements = '/dev/null' > - endif > if targetos == 'darwin' > - icon = meson.current_source_dir() / 'pc-bios/qemu.rsrc' > + icon = 'pc-bios/qemu.rsrc' > + build_input = [emulator, files(icon)] > + install_input = [ > + get_option('bindir') / exe_name, > + meson.current_source_dir() / icon > + ] > + if 'CONFIG_HVF' in config_target > + entitlements = 'accel/hvf/entitlements.plist' > + build_input += files(entitlements) > + install_input += meson.current_source_dir() / entitlements > + endif > + > emulators += {exe['name'] : custom_target(exe['name'], > - depends: emulator, > + input: build_input, > output: exe['name'], > command: [ > - meson.current_source_dir() / 'scripts/entitlement.sh', > - meson.current_build_dir() / exe_name, > - meson.current_build_dir() / exe['name'], > - entitlements, icon > + files('scripts/entitlement.sh'), > + '@OUTPUT@', > + '@INPUT@' > ]) > } > > meson.add_install_script('scripts/entitlement.sh', '--install', > - get_option('bindir') / exe_name, > get_option('bindir') / exe['name'], > - entitlements, icon) > + install_input) > else > emulators += {exe['name']: emulator} > endif > diff --git a/scripts/entitlement.sh b/scripts/entitlement.sh > index d2a7079ce3e..e2c956a3ac9 100755 > --- a/scripts/entitlement.sh > +++ b/scripts/entitlement.sh > @@ -8,10 +8,10 @@ if [ "$1" = --install ]; then > in_place=false > fi > > -SRC="$1" > -DST="$2" > -ENTITLEMENT="$3" > -ICON="$4" > +DST="$1" > +SRC="$2" > +ICON="$3" > +ENTITLEMENT="$4" > > if $in_place; then > trap 'rm "$DST.tmp"' exit > @@ -21,7 +21,7 @@ else > cd "$MESON_INSTALL_DESTDIR_PREFIX" > fi > > -if test "$ENTITLEMENT" != '/dev/null'; then > +if test -n "$ENTITLEMENT"; then > codesign --entitlements "$ENTITLEMENT" --force -s - "$SRC" > fi > > Definitely better, thanks!! I queued the patch. Paolo
diff --git a/meson.build b/meson.build index 7e12de01bec..d21adecc0d8 100644 --- a/meson.build +++ b/meson.build @@ -2521,28 +2521,32 @@ foreach target : target_dirs link_args: link_args, gui_app: exe['gui']) - if 'CONFIG_HVF' in config_target - entitlements = meson.current_source_dir() / 'accel/hvf/entitlements.plist' - else - entitlements = '/dev/null' - endif if targetos == 'darwin' - icon = meson.current_source_dir() / 'pc-bios/qemu.rsrc' + icon = 'pc-bios/qemu.rsrc' + build_input = [emulator, files(icon)] + install_input = [ + get_option('bindir') / exe_name, + meson.current_source_dir() / icon + ] + if 'CONFIG_HVF' in config_target + entitlements = 'accel/hvf/entitlements.plist' + build_input += files(entitlements) + install_input += meson.current_source_dir() / entitlements + endif + emulators += {exe['name'] : custom_target(exe['name'], - depends: emulator, + input: build_input, output: exe['name'], command: [ - meson.current_source_dir() / 'scripts/entitlement.sh', - meson.current_build_dir() / exe_name, - meson.current_build_dir() / exe['name'], - entitlements, icon + files('scripts/entitlement.sh'), + '@OUTPUT@', + '@INPUT@' ]) } meson.add_install_script('scripts/entitlement.sh', '--install', - get_option('bindir') / exe_name, get_option('bindir') / exe['name'], - entitlements, icon) + install_input) else emulators += {exe['name']: emulator} endif diff --git a/scripts/entitlement.sh b/scripts/entitlement.sh index d2a7079ce3e..e2c956a3ac9 100755 --- a/scripts/entitlement.sh +++ b/scripts/entitlement.sh @@ -8,10 +8,10 @@ if [ "$1" = --install ]; then in_place=false fi -SRC="$1" -DST="$2" -ENTITLEMENT="$3" -ICON="$4" +DST="$1" +SRC="$2" +ICON="$3" +ENTITLEMENT="$4" if $in_place; then trap 'rm "$DST.tmp"' exit @@ -21,7 +21,7 @@ else cd "$MESON_INSTALL_DESTDIR_PREFIX" fi -if test "$ENTITLEMENT" != '/dev/null'; then +if test -n "$ENTITLEMENT"; then codesign --entitlements "$ENTITLEMENT" --force -s - "$SRC" fi
input/output parameters respect dependencies. Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com> --- meson.build | 30 +++++++++++++++++------------- scripts/entitlement.sh | 10 +++++----- 2 files changed, 22 insertions(+), 18 deletions(-)