qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Set icon for QEMU binary on Mac OS


From: Paolo Bonzini
Subject: Re: [PATCH] Set icon for QEMU binary on Mac OS
Date: Thu, 4 Feb 2021 18:48:55 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0

On 04/02/21 16:42, Peter Maydell wrote:
On Thu, 4 Feb 2021 at 15:39, Programmingkid <programmingkidx@gmail.com> wrote:



On Feb 4, 2021, at 3:54 AM, Paolo Bonzini <pbonzini@redhat.com> wrote:

On 02/02/21 14:44, John Arbuckle wrote:
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.
Signed-off-by: John Arbuckle <programmingkidx@gmail.com>
---
  meson.build | 20 ++++++++++++++++++++
  1 file changed, 20 insertions(+)
diff --git a/meson.build b/meson.build
index f00b7754fd..7f534f4e75 100644
--- a/meson.build
+++ b/meson.build
@@ -2183,6 +2183,26 @@ foreach target : target_dirs
                 link_args: link_args,
                 gui_app: exe['gui'])
  +# set QEMU's icon on Mac OS
+if targetos == 'darwin'
+    newiconpart1 = custom_target('Icon for ' + exe_name + ' - part 1',
+          depends : emulator,
+          input : emulator,
+          output : 'new icon for ' + exe_name + ' - 1',
+          command : ['Rez', '-append',
+           meson.source_root() + '/pc-bios/qemu.rsrc', '-o',
+           meson.current_build_dir() / exe['name']],
+          build_by_default : true)
+
+    custom_target('Icon for ' + exe_name + ' - part 2',
+          depends : newiconpart1,
+          input : emulator,
+          output : 'new icon for ' + exe_name + ' - 2',
+          command : ['SetFile', '-a', 'C',
+           meson.current_build_dir() / exe['name']],
+          build_by_default : true)
+endif
+
      if exe_sign
        emulators += {exe['name'] : custom_target(exe['name'],
                     install: true,

Maybe you can do it on install, using add_install_script instead?

Why would we want to only do it on install? A QEMU which
you run from the build tree ought to still have its icon,
surely ?

Mostly because edit-in-place commands are not very well suited to a "make" workflow, while they're common at install time (e.g. strip).

But since we already have scripts/entitlement.sh, and it's only Apple that like in-place build steps it is even better to combine all the in-place adjustment to the executable in scripts/entitlement.sh. For example if no entitlements are needed, you pass an empty third argument and scripts/entitlement.sh (now scripts/postprocess-darwin-executable.sh or something like that?) can do Rez+SetFile but not codesign. The existing "if exe_sign" becomes an "if targetos == 'darwin'".

Paolo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]