# # Makefile # OS Vault # # Author: Simon-Pierre Boucher # Mail: contact@spboucher.ai # APP_NAME := OS Vault EXEC_NAME := OSVault BUNDLE_ID := com.zyquo.osvault VERSION := 1.0.0 BUILD_DIR := .build DIST_DIR := dist APP_BUNDLE := $(DIST_DIR)/$(APP_NAME).app SIGN_IDENTITY := Developer ID Application: Simon-Pierre Boucher (3YM54G49SN) NOTARY_PROFILE := MacLustr-Notarize .PHONY: build release-build test clean dev bundle-debug bundle-release run release build: swift build release-build: swift build -c release test: swift test clean: swift package clean rm -rf $(DIST_DIR) # ── App bundle assembly ────────────────────────────────────────────────────── # $(1) = built products dir (.build/debug or .build/release) define assemble_bundle rm -rf "$(APP_BUNDLE)" mkdir -p "$(APP_BUNDLE)/Contents/MacOS" "$(APP_BUNDLE)/Contents/Resources" cp "$(1)/$(EXEC_NAME)" "$(APP_BUNDLE)/Contents/MacOS/$(EXEC_NAME)" cp Support/Info.plist "$(APP_BUNDLE)/Contents/Info.plist" printf 'APPL????' > "$(APP_BUNDLE)/Contents/PkgInfo" [ -f assets/icon/AppIcon.icns ] && cp assets/icon/AppIcon.icns "$(APP_BUNDLE)/Contents/Resources/AppIcon.icns" || true endef bundle-debug: build $(call assemble_bundle,$(BUILD_DIR)/debug) codesign --force --deep --entitlements Support/entitlements.plist --sign - "$(APP_BUNDLE)" bundle-release: release-build $(call assemble_bundle,$(BUILD_DIR)/release) # Debug bundle, ad-hoc signed, launched. dev: bundle-debug open "$(APP_BUNDLE)" run: dev # Signed, notarized, stapled release: scripts/release.sh release: scripts/release.sh