Skip to content

Commit

Permalink
embed Info.plist
Browse files Browse the repository at this point in the history
  • Loading branch information
koekeishiya committed Feb 10, 2024
1 parent bc9bfba commit 5a5e107
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 23 deletions.
20 changes: 20 additions & 0 deletions assets/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>yabai</string>
<key>CFBundleIdentifier</key>
<string>com.koekeishiya.yabai</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>yabai</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2019 Åsmund Vikane. All rights reserved.</string>
</dict>
</plist>
9 changes: 5 additions & 4 deletions makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FRAMEWORK_PATH = -F/System/Library/PrivateFrameworks
FRAMEWORK = -framework Carbon -framework Cocoa -framework CoreServices -framework CoreVideo -framework SkyLight
BUILD_FLAGS = -std=c99 -Wall -g -O0 -fvisibility=hidden -mmacosx-version-min=11.0 -fno-objc-arc -arch x86_64 -arch arm64
BUILD_FLAGS = -std=c99 -Wall -g -O0 -fvisibility=hidden -mmacosx-version-min=11.0 -fno-objc-arc -arch x86_64 -arch arm64 -sectcreate __TEXT __info_plist $(INFO_PLIST)
BUILD_PATH = ./bin
DOC_PATH = ./doc
SCRIPT_PATH = ./scripts
Expand All @@ -10,19 +10,20 @@ ARCH_PATH = ./archive
OSAX_SRC = ./src/osax/payload_bin.c ./src/osax/loader_bin.c
YABAI_SRC = ./src/manifest.m $(OSAX_SRC)
OSAX_PATH = ./src/osax
INFO_PLIST = $(ASSET_PATH)/Info.plist
BINS = $(BUILD_PATH)/yabai

.PHONY: all asan tsan install man icon archive sign clean-build clean

all: clean-build $(BINS)

asan: BUILD_FLAGS=-std=c99 -Wall -g -O0 -fvisibility=hidden -fsanitize=address,undefined -mmacosx-version-min=11.0 -fno-objc-arc -arch x86_64 -arch arm64
asan: BUILD_FLAGS=-std=c99 -Wall -g -O0 -fvisibility=hidden -fsanitize=address,undefined -mmacosx-version-min=11.0 -fno-objc-arc -arch x86_64 -arch arm64 -sectcreate __TEXT __info_plist $(INFO_PLIST)
asan: clean-build $(BINS)

tsan: BUILD_FLAGS=-std=c99 -Wall -g -O0 -fvisibility=hidden -fsanitize=thread,undefined -mmacosx-version-min=11.0 -fno-objc-arc -arch x86_64 -arch arm64
tsan: BUILD_FLAGS=-std=c99 -Wall -g -O0 -fvisibility=hidden -fsanitize=thread,undefined -mmacosx-version-min=11.0 -fno-objc-arc -arch x86_64 -arch arm64 -sectcreate __TEXT __info_plist $(INFO_PLIST)
tsan: clean-build $(BINS)

install: BUILD_FLAGS=-std=c99 -Wall -DNDEBUG -O2 -fvisibility=hidden -mmacosx-version-min=11.0 -fno-objc-arc -arch x86_64 -arch arm64
install: BUILD_FLAGS=-std=c99 -Wall -DNDEBUG -O2 -fvisibility=hidden -mmacosx-version-min=11.0 -fno-objc-arc -arch x86_64 -arch arm64 -sectcreate __TEXT __info_plist $(INFO_PLIST)
install: clean-build $(BINS)

$(OSAX_SRC): $(OSAX_PATH)/loader.m $(OSAX_PATH)/payload.m
Expand Down
1 change: 0 additions & 1 deletion src/manifest.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#include <Carbon/Carbon.h>
#include <Cocoa/Cocoa.h>
#include <CoreVideo/CoreVideo.h>
#include <objc/objc-runtime.h>
#include <mach-o/dyld.h>
#include <mach-o/swap.h>

Expand Down
4 changes: 1 addition & 3 deletions src/misc/autorelease.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
#include <execinfo.h>
#include <objc/runtime.h>

IMP g_nsobject_autorelease;
IMP g_nsautoreleasepool_drain;
Expand Down
15 changes: 0 additions & 15 deletions src/misc/notify.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,6 @@ static NSImage *g_notify_img;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"

@implementation NSBundle(swizzle)
- (NSString *)fake_bundleIdentifier
{
if (self == [NSBundle mainBundle]) {
return @"com.koekeishiya.yabai";
} else {
return [self fake_bundleIdentifier];
}
}
@end

@interface NotifyDelegate : NSObject <NSUserNotificationCenterDelegate>
@end

Expand All @@ -30,10 +19,6 @@ static NSImage *g_notify_img;

static bool notify_init(void)
{
Class c = objc_getClass("NSBundle");
if (!c) return false;

method_exchangeImplementations(class_getInstanceMethod(c, @selector(bundleIdentifier)), class_getInstanceMethod(c, @selector(fake_bundleIdentifier)));
[[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:[NotifyDelegate alloc]];
g_notify_img = [[[NSWorkspace sharedWorkspace] iconForFile:[[[NSBundle mainBundle] executablePath] stringByResolvingSymlinksInPath]] retain];
g_notify_init = true;
Expand Down

0 comments on commit 5a5e107

Please sign in to comment.