Files
macos-stats/Makefile

115 lines
3.6 KiB
Makefile
Raw Normal View History

2019-07-04 19:30:19 +02:00
APP = Stats
2020-07-04 23:00:21 +02:00
BUNDLE_ID = eu.exelban.$(APP)
2019-07-04 19:30:19 +02:00
2019-07-04 20:53:18 +02:00
BUILD_PATH = $(PWD)/build
APP_PATH = "$(BUILD_PATH)/$(APP).app"
ZIP_PATH = "$(BUILD_PATH)/$(APP).zip"
2019-07-04 19:30:19 +02:00
.SILENT: archive notarize sign prepare-dmg prepare-dSYM clean next-version check history disk smc leveldb
.PHONY: build archive notarize sign prepare-dmg prepare-dSYM clean next-version check history open smc leveldb
2019-07-04 19:30:19 +02:00
2020-07-04 23:01:54 +02:00
build: clean next-version archive notarize sign prepare-dmg prepare-dSYM open
2020-07-04 23:00:21 +02:00
# --- MAIN WORLFLOW FUNCTIONS --- #
2020-11-29 12:51:53 +01:00
archive: clean
osascript -e 'display notification "Exporting application archive..." with title "Build the Stats"'
echo "Exporting application archive..."
2019-07-04 19:30:19 +02:00
xcodebuild \
2019-07-04 20:53:18 +02:00
-scheme $(APP) \
2019-07-04 19:30:19 +02:00
-destination 'platform=OS X,arch=x86_64' \
2020-10-18 19:06:10 +02:00
-configuration Release archive \
2020-07-04 23:00:21 +02:00
-archivePath $(BUILD_PATH)/$(APP).xcarchive
2019-07-04 19:30:19 +02:00
2020-07-04 23:00:21 +02:00
echo "Application built, starting the export archive..."
xcodebuild -exportArchive \
2019-07-04 20:53:18 +02:00
-exportOptionsPlist "$(PWD)/exportOptions.plist" \
2020-07-04 23:00:21 +02:00
-archivePath $(BUILD_PATH)/$(APP).xcarchive \
2019-07-04 20:53:18 +02:00
-exportPath $(BUILD_PATH)
2019-07-04 19:30:19 +02:00
2019-07-04 20:53:18 +02:00
ditto -c -k --keepParent $(APP_PATH) $(ZIP_PATH)
2019-07-04 19:30:19 +02:00
2020-07-04 23:00:21 +02:00
echo "Project archived successfully"
2019-07-04 20:53:18 +02:00
notarize:
2020-11-29 12:51:53 +01:00
osascript -e 'display notification "Submitting app for notarization..." with title "Build the Stats"'
echo "Submitting app for notarization..."
2020-07-04 23:00:21 +02:00
xcrun notarytool submit --keychain-profile "AC_PASSWORD" --wait $(ZIP_PATH)
2019-07-04 19:30:19 +02:00
echo "Stats successfully notarized"
2019-07-04 19:30:19 +02:00
sign:
osascript -e 'display notification "Stampling the Stats..." with title "Build the Stats"'
2020-07-04 23:00:21 +02:00
echo "Going to staple an application..."
2019-07-04 19:30:19 +02:00
xcrun stapler staple $(APP_PATH)
spctl -a -t exec -vvv $(APP_PATH)
2020-11-29 12:51:53 +01:00
osascript -e 'display notification "Stats successfully stapled" with title "Build the Stats"'
echo "Stats successfully stapled"
2020-07-04 23:00:21 +02:00
prepare-dmg:
2019-07-04 19:30:19 +02:00
if [ ! -d $(PWD)/create-dmg ]; then \
git clone https://github.com/create-dmg/create-dmg; \
2019-07-04 19:30:19 +02:00
fi
./create-dmg/create-dmg \
--volname $(APP) \
--background "./Stats/Supporting Files/background.png" \
2019-07-04 19:30:19 +02:00
--window-pos 200 120 \
--window-size 500 320 \
--icon-size 80 \
--icon "Stats.app" 125 175 \
--hide-extension "Stats.app" \
--app-drop-link 375 175 \
--no-internet-enable \
2020-07-04 23:00:21 +02:00
$(PWD)/$(APP).dmg \
2019-07-04 19:30:19 +02:00
$(APP_PATH)
rm -rf ./create-dmg
2020-07-04 23:00:21 +02:00
prepare-dSYM:
echo "Zipping dSYMs..."
2020-07-09 16:30:49 +02:00
cd $(BUILD_PATH)/Stats.xcarchive/dSYMs && zip -r $(PWD)/dSYMs.zip .
2020-07-04 23:00:21 +02:00
echo "Created zip with dSYMs"
# --- HELPERS --- #
clean:
rm -rf $(BUILD_PATH)
if [ -a $(PWD)/dSYMs.zip ]; then rm $(PWD)/dSYMs.zip; fi;
2020-07-04 23:00:21 +02:00
if [ -a $(PWD)/Stats.dmg ]; then rm $(PWD)/Stats.dmg; fi;
next-version:
versionNumber=$$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$(PWD)/Stats/Supporting Files/Info.plist") ;\
echo "Actual version is: $$versionNumber" ;\
versionNumber=$$((versionNumber + 1)) ;\
echo "Next version is: $$versionNumber" ;\
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $$versionNumber" "$(PWD)/Stats/Supporting Files/Info.plist" ;\
2019-07-04 19:30:19 +02:00
check:
2022-08-27 15:35:26 +02:00
xcrun notarytool log 2d0045cc-8f0d-4f4c-ba6f-728895fd064a --keychain-profile "AC_PASSWORD"
2019-07-04 19:30:19 +02:00
history:
2022-08-27 15:35:26 +02:00
xcrun notarytool history --keychain-profile "AC_PASSWORD"
2020-07-04 23:00:21 +02:00
open:
2020-11-29 12:51:53 +01:00
osascript -e 'display notification "Stats signed and ready for distribution" with title "Build the Stats"'
2020-07-04 23:00:21 +02:00
echo "Opening working folder..."
open $(PWD)
smc:
$(MAKE) --directory=./smc
open $(PWD)/smc
leveldb:
if [ ! -d $(PWD)/leveldb-source ]; then \
git clone --recurse-submodules https://github.com/google/leveldb.git leveldb-source; \
fi
mkdir -p $(PWD)/leveldb-source/build
cd $(PWD)/leveldb-source/build && cmake -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_BUILD_TYPE=Release .. && cmake --build .
cp $(PWD)/leveldb-source/build/libleveldb.a $(PWD)/Kit/lldb/libleveldb.a
rm -rf $(PWD)/leveldb-source