* [PATCH] meson: Use input/output for entitlements target
@ 2021-07-09 1:25 Akihiko Odaki
2021-07-09 8:29 ` Paolo Bonzini
0 siblings, 1 reply; 2+ messages in thread
From: Akihiko Odaki @ 2021-07-09 1:25 UTC (permalink / raw)
Cc: Peter Maydell, Eduardo Habkost, Richard Henderson, qemu-devel,
Cameron Esfahani, Roman Bolshakov, Alexander Graf, Akihiko Odaki,
Frank Yang, Paolo Bonzini, Peter Collingbourne
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
--
2.30.1 (Apple Git-130)
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] meson: Use input/output for entitlements target
2021-07-09 1:25 [PATCH] meson: Use input/output for entitlements target Akihiko Odaki
@ 2021-07-09 8:29 ` Paolo Bonzini
0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2021-07-09 8:29 UTC (permalink / raw)
To: Akihiko Odaki
Cc: Peter Maydell, Eduardo Habkost, Richard Henderson, qemu-devel,
Cameron Esfahani, Roman Bolshakov, Alexander Graf, Frank Yang,
Peter Collingbourne
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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-07-09 8:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-09 1:25 [PATCH] meson: Use input/output for entitlements target Akihiko Odaki
2021-07-09 8:29 ` Paolo Bonzini
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.