# Creates a dev package containing the Secretive app and CLI # Usage: make PROJECT_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) BUILD_DIR := $(PROJECT_DIR)/build ARCHIVE := $(BUILD_DIR)/Archive.xcarchive APP_BUNDLE := $(BUILD_DIR)/Secretive.app APP_ROOT := $(BUILD_DIR)/AppPayload APP_PKG := $(BUILD_DIR)/App.pkg CLI_BIN := $(BUILD_DIR)/SecretiveCLI CLI_ROOT := $(BUILD_DIR)/CLIPayload CLI_PKG := $(BUILD_DIR)/CLI.pkg DIST := $(BUILD_DIR)/distribution.xml FINAL_PKG := $(BUILD_DIR)/Secretive-dev-unsigned.pkg XCODEBUILD := xcodebuild -project $(PROJECT_DIR)/Sources/Secretive.xcodeproj .PHONY: all clean all: $(FINAL_PKG) @echo "Built: $(FINAL_PKG)" $(ARCHIVE): @mkdir -p $(BUILD_DIR) $(XCODEBUILD) -scheme Secretive -configuration Release CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" -archivePath $(ARCHIVE) archive $(APP_BUNDLE): $(ARCHIVE) @rm -rf $(APP_BUNDLE) cp -R $(ARCHIVE)/Products/Applications/Secretive.app $(APP_BUNDLE) $(CLI_BIN): @mkdir -p $(BUILD_DIR) cd $(PROJECT_DIR)/Sources/Packages && xcodebuild -scheme SecretiveCLI -configuration Release \ -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" \ SYMROOT=$(BUILD_DIR)/xcode-cli build cp $(BUILD_DIR)/xcode-cli/Release/SecretiveCLI $(CLI_BIN) cp -R $(BUILD_DIR)/xcode-cli/Release/*.bundle $(BUILD_DIR)/ 2>/dev/null || true $(APP_ROOT): $(APP_BUNDLE) @rm -rf $(APP_ROOT) @mkdir -p $(APP_ROOT) cp -R $(APP_BUNDLE) $(APP_ROOT)/ $(CLI_ROOT): $(CLI_BIN) @rm -rf $(CLI_ROOT) @mkdir -p $(CLI_ROOT) cp $(CLI_BIN) $(CLI_ROOT)/secretive $(APP_PKG): $(APP_ROOT) pkgbuild --root $(APP_ROOT) --install-location /Applications --identifier com.maxgoedjen.Secretive.app --version 0.0.0-dev $(APP_PKG) $(CLI_PKG): $(CLI_ROOT) pkgbuild --root $(CLI_ROOT) --install-location /usr/local/bin --identifier com.maxgoedjen.Secretive.cli --version 0.0.0-dev $(CLI_PKG) $(DIST): @mkdir -p $(BUILD_DIR) @printf '%s\n' \ '' \ '' \ ' Secretive (Dev)' \ ' com.maxgoedjen' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' ' \ ' App.pkg' \ ' CLI.pkg' \ '' \ > $(DIST) $(FINAL_PKG): $(APP_PKG) $(CLI_PKG) $(DIST) productbuild --distribution $(DIST) --package-path $(BUILD_DIR) $(FINAL_PKG) clean: rm -rf $(BUILD_DIR)