* [PATCH v3] Set icon for QEMU binary on Mac OS
@ 2021-07-06 8:15 Paolo Bonzini
0 siblings, 0 replies; only message in thread
From: Paolo Bonzini @ 2021-07-06 8:15 UTC (permalink / raw)
To: qemu-devel; +Cc: John Arbuckle
From: John Arbuckle <programmingkidx@gmail.com>
Before switching the build system over to Meson, an icon was
added to the QEMU binary on Mac OS. This patch adds back that
feature; it piggybacks on the existing scripts/entitlement.sh,
which already does in-place changes to the executable on Darwin.
Signed-off-by: John Arbuckle <programmingkidx@gmail.com>
Message-Id: <20210705195328.36442-1-programmingkidx@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 15 ++++++++++-----
scripts/entitlement.sh | 10 +++++++++-
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/meson.build b/meson.build
index 1651496800..8b61fdb4be 100644
--- a/meson.build
+++ b/meson.build
@@ -2507,8 +2507,7 @@ foreach target : target_dirs
endif
foreach exe: execs
exe_name = exe['name']
- exe_sign = 'CONFIG_HVF' in config_target
- if exe_sign
+ if targetos == 'darwin'
exe_name += '-unsigned'
endif
@@ -2522,7 +2521,13 @@ foreach target : target_dirs
link_args: link_args,
gui_app: exe['gui'])
- if exe_sign
+ 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'
emulators += {exe['name'] : custom_target(exe['name'],
depends: emulator,
output: exe['name'],
@@ -2530,14 +2535,14 @@ foreach target : target_dirs
meson.current_source_dir() / 'scripts/entitlement.sh',
meson.current_build_dir() / exe_name,
meson.current_build_dir() / exe['name'],
- meson.current_source_dir() / 'accel/hvf/entitlements.plist'
+ entitlements, icon
])
}
meson.add_install_script('scripts/entitlement.sh', '--install',
get_option('bindir') / exe_name,
get_option('bindir') / exe['name'],
- meson.current_source_dir() / 'accel/hvf/entitlements.plist')
+ entitlements, icon)
else
emulators += {exe['name']: emulator}
endif
diff --git a/scripts/entitlement.sh b/scripts/entitlement.sh
index f7aaaf2766..d2a7079ce3 100755
--- a/scripts/entitlement.sh
+++ b/scripts/entitlement.sh
@@ -11,6 +11,7 @@ fi
SRC="$1"
DST="$2"
ENTITLEMENT="$3"
+ICON="$4"
if $in_place; then
trap 'rm "$DST.tmp"' exit
@@ -20,6 +21,13 @@ else
cd "$MESON_INSTALL_DESTDIR_PREFIX"
fi
-codesign --entitlements "$ENTITLEMENT" --force -s - "$SRC"
+if test "$ENTITLEMENT" != '/dev/null'; then
+ codesign --entitlements "$ENTITLEMENT" --force -s - "$SRC"
+fi
+
+# Add the QEMU icon to the binary on Mac OS
+Rez -append "$ICON" -o "$SRC"
+SetFile -a C "$SRC"
+
mv -f "$SRC" "$DST"
trap '' exit
--
2.31.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2021-07-06 8:17 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-06 8:15 [PATCH v3] Set icon for QEMU binary on Mac OS 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.