Files
2026-09-09 23:45:53 +05:30

49 lines
2.2 KiB
Makefile

set shell := ["zsh", "-cu"]
java_home := env_var_or_default("JAVA_HOME", "/opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home")
android_home := env_var_or_default("ANDROID_HOME", "/opt/homebrew/share/android-commandlinetools")
device := env_var_or_default("BERTS_ATLAS_DEVICE", "663c91b1")
simulator_device := env_var_or_default("BERTS_ATLAS_SIMULATOR_DEVICE", "iPhone 17 Pro")
simulator_destination := "platform=iOS Simulator,name=" + simulator_device
adb := android_home + "/platform-tools/adb"
export JAVA_HOME := java_home
export ANDROID_HOME := android_home
export ANDROID_SDK_ROOT := android_home
default: build
# Build both runnable apps and validate bundled content.
build: android ios catalog
# Build the Android APK only.
android:
./gradlew :androidApp:assembleDebug
# Build the shared iOS simulator framework and the Xcode host app.
ios:
./gradlew :composeApp:linkDebugFrameworkIosSimulatorArm64
xcodebuild -project iosApp/iosApp.xcodeproj -scheme iosApp -configuration Debug -destination '{{simulator_destination}}' -derivedDataPath build/ios-derived-data build
# Build, install, and launch the app on the selected iOS simulator.
run-ios: ios
xcrun simctl boot '{{simulator_device}}' 2>/dev/null || true
xcrun simctl bootstatus '{{simulator_device}}' -b
xcrun simctl install '{{simulator_device}}' "build/ios-derived-data/Build/Products/Debug-iphonesimulator/Bert's Atlas.app"
xcrun simctl launch '{{simulator_device}}' app.bertsatlas
# Install and launch the debug app on the requested OnePlus device.
install-android: android
'{{adb}}' -s '{{device}}' get-state
'{{adb}}' -s '{{device}}' install -r androidApp/build/outputs/apk/debug/androidApp-debug.apk
'{{adb}}' -s '{{device}}' shell am force-stop app.bertsatlas
'{{adb}}' -s '{{device}}' shell monkey -p app.bertsatlas -c android.intent.category.LAUNCHER 1
# Run the structural content gate; editorial release signoff remains separate.
catalog:
./gradlew :catalogTool:validateCatalog
# Build release artifacts without running automated tests.
release:
./gradlew :androidApp:assembleRelease :composeApp:linkReleaseFrameworkIosArm64 :catalogTool:validateCatalogForRelease