APP_NAME := VirtualDisplay SRC_DIR := src BUILD_DIR := build APP_BUNDLE := $(BUILD_DIR)/$(APP_NAME).app MACOS_DIR := $(APP_BUNDLE)/Contents/MacOS BIN := $(MACOS_DIR)/$(APP_NAME) INFO_PLIST := $(SRC_DIR)/Info.plist ENTITLEMENTS := $(SRC_DIR)/VirtualDisplay.entitlements BRIDGING := $(SRC_DIR)/BridgingHeader.h PRIVATE_H := $(SRC_DIR)/CGVirtualDisplayPrivate.h SWIFT_SOURCES := $(wildcard $(SRC_DIR)/*.swift) SWIFTC := swiftc SWIFTFLAGS := -O \ -import-objc-header $(BRIDGING) \ -framework Cocoa \ -framework CoreGraphics \ -framework IOKit .PHONY: all run kill clean rebuild all: $(APP_BUNDLE) $(APP_BUNDLE): $(SWIFT_SOURCES) $(BRIDGING) $(PRIVATE_H) $(INFO_PLIST) $(ENTITLEMENTS) @mkdir -p $(MACOS_DIR) $(APP_BUNDLE)/Contents/Resources cp $(INFO_PLIST) $(APP_BUNDLE)/Contents/Info.plist $(SWIFTC) $(SWIFTFLAGS) -o $(BIN) $(SWIFT_SOURCES) codesign --force --sign - --entitlements $(ENTITLEMENTS) $(APP_BUNDLE) @echo "Built $(APP_BUNDLE)" run: $(APP_BUNDLE) open $(APP_BUNDLE) kill: -pkill -f $(APP_NAME) rebuild: clean all clean: rm -rf $(BUILD_DIR)