From 8d5ff5cae765ff9f7711c564685ebb15a52ee96f Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 7 Jun 2016 10:59:35 -0700 Subject: [PATCH] mach: Set a nice icon for the binary on the Mac. There's actually a practical reason for this: it helps me pick out the app in Instruments.app. See: http://apple.stackexchange.com/questions/6901/how-can-i-change-a-file-or-folder-icon-using-the-terminal/161984#161984 --- python/servo/build_commands.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py index 7e2845b598f..1d4931dc78c 100644 --- a/python/servo/build_commands.py +++ b/python/servo/build_commands.py @@ -186,6 +186,10 @@ class MachCommands(CommandBase): if release: opts += ["--release"] + servo_path = release_path + else: + servo_path = dev_path + if jobs is not None: opts += ["-j", jobs] if verbose: @@ -241,6 +245,20 @@ class MachCommands(CommandBase): shutil.copy(path.join(self.get_top_dir(), "components", "servo", "servo.exe.manifest"), path.join(base_path, "debug" if dev else "release")) + # On the Mac, set a lovely icon. This makes it easier to pick out the Servo binary in tools + # like Instruments.app. + if sys.platform == "darwin": + try: + import Cocoa + icon_path = path.join(self.get_top_dir(), "resources", "servo.png") + icon = Cocoa.NSImage.alloc().initWithContentsOfFile_(icon_path) + if icon is not None: + Cocoa.NSWorkspace.sharedWorkspace().setIcon_forFile_options_(icon, + servo_path, + 0) + except ImportError: + pass + # Generate Desktop Notification if elapsed-time > some threshold value notify_build_done(elapsed)