diff mbox series

[v2] Set icon for QEMU binary on Mac OS

Message ID 20210705195328.36442-1-programmingkidx@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v2] Set icon for QEMU binary on Mac OS | expand

Commit Message

Programmingkid July 5, 2021, 7:53 p.m. UTC
Signed-off-by: John Arbuckle <programmingkidx@gmail.com>
---
v1 changes:
Rewrote the patch as the maintainer had wanted.

 meson.build            | 15 ++++++++++-----
 scripts/entitlement.sh | 10 +++++++++-
 2 files changed, 19 insertions(+), 6 deletions(-)

Comments

Paolo Bonzini July 5, 2021, 8:07 p.m. UTC | #1
Well, you're not using $ICON at all but I can clean that up myself. Thanks
for testing.

Paolo

Il lun 5 lug 2021, 21:53 John Arbuckle <programmingkidx@gmail.com> ha
scritto:

> Signed-off-by: John Arbuckle <programmingkidx@gmail.com>
> ---
> v1 changes:
> Rewrote the patch as the maintainer had wanted.
>
>  meson.build            | 15 ++++++++++-----
>  scripts/entitlement.sh | 10 +++++++++-
>  2 files changed, 19 insertions(+), 6 deletions(-)
>
> diff --git a/meson.build b/meson.build
> index db6789af9c..499ab49981 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2360,8 +2360,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
>
> @@ -2375,7 +2374,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 = '...'
>        emulators += {exe['name'] : custom_target(exe['name'],
>                     depends: emulator,
>                     output: exe['name'],
> @@ -2383,14 +2388,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..46e378426b 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 '../pc-bios/qemu.rsrc' -o "$SRC"
> +SetFile -a C "$SRC"
> +
>  mv -f "$SRC" "$DST"
>  trap '' exit
> --
> 2.24.3 (Apple Git-128)
>
>
Programmingkid July 6, 2021, 12:51 a.m. UTC | #2
> On Jul 5, 2021, at 4:07 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:
> 
> Well, you're not using $ICON at all but I can clean that up myself. Thanks for testing.
> 
> Paolo
> 

Please send me the cleaned up patch for testing once you complete it. Thank you.


> Il lun 5 lug 2021, 21:53 John Arbuckle <programmingkidx@gmail.com> ha scritto:
> Signed-off-by: John Arbuckle <programmingkidx@gmail.com>
> ---
> v1 changes:
> Rewrote the patch as the maintainer had wanted.
> 
>  meson.build            | 15 ++++++++++-----
>  scripts/entitlement.sh | 10 +++++++++-
>  2 files changed, 19 insertions(+), 6 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index db6789af9c..499ab49981 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2360,8 +2360,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
> 
> @@ -2375,7 +2374,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 = '...'
>        emulators += {exe['name'] : custom_target(exe['name'],
>                     depends: emulator,
>                     output: exe['name'],
> @@ -2383,14 +2388,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..46e378426b 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 '../pc-bios/qemu.rsrc' -o "$SRC"
> +SetFile -a C "$SRC"
> +
>  mv -f "$SRC" "$DST"
>  trap '' exit
> -- 
> 2.24.3 (Apple Git-128)
>
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index db6789af9c..499ab49981 100644
--- a/meson.build
+++ b/meson.build
@@ -2360,8 +2360,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
 
@@ -2375,7 +2374,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 = '...'
       emulators += {exe['name'] : custom_target(exe['name'],
                    depends: emulator,
                    output: exe['name'],
@@ -2383,14 +2388,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..46e378426b 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 '../pc-bios/qemu.rsrc' -o "$SRC"
+SetFile -a C "$SRC"
+
 mv -f "$SRC" "$DST"
 trap '' exit