NAME := STSign
PLATFORM := iphoneos
SCHEMES := Ksign
TMP := $(TMPDIR)/$(NAME)
STAGE := $(TMP)/stage
APP := $(TMP)/Build/Products/Release-$(PLATFORM)

.PHONY: all clean $(SCHEMES)

all: $(SCHEMES)

clean:
	rm -rf "$(TMP)"
	rm -rf packages
	rm -rf Payload

deps:
	mkdir -p deps
	@echo "STSign: no third-party TLS keys are downloaded. Local TLS setup is manual."

$(SCHEMES): deps
	xcodebuild \
	    -project Ksign.xcodeproj \
	    -scheme "$@" \
	    -configuration Release \
	    -arch arm64 \
	    -sdk $(PLATFORM) \
	    -derivedDataPath $(TMP) \
	    -skipPackagePluginValidation \
	    CODE_SIGNING_ALLOWED=NO \
	    ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO

	rm -rf Payload
	rm -rf "$(STAGE)/"
	mkdir -p "$(STAGE)/Payload"

	mv "$(APP)/$(NAME).app" "$(STAGE)/Payload/$(NAME).app"

	chmod -R 0755 "$(STAGE)/Payload/$(NAME).app"
	codesign --force --sign - --timestamp=none "$(STAGE)/Payload/$(NAME).app"

	cp deps/* "$(STAGE)/Payload/$(NAME).app/" || true

	rm -rf "$(STAGE)/Payload/$(NAME).app/_CodeSignature"
	ln -sf "$(STAGE)/Payload" Payload
	
	mkdir -p packages
	zip -r9 "packages/$(NAME).ipa" Payload