meson: Use input/output for entitlements target

input/output parameters respect dependencies.

Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Message-Id: <20210709012533.58262-1-akihiko.odaki@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Akihiko Odaki 2021-07-09 10:25:33 +09:00 committed by Paolo Bonzini
parent d1d5e9eefd
commit 411ad8dd80
2 changed files with 22 additions and 18 deletions

View File

@ -2609,28 +2609,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

View File

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