mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 22:25:18 +00:00
67 lines
3.0 KiB
Makefile
67 lines
3.0 KiB
Makefile
# BitChat developer commands
|
|
#
|
|
# Builds use a repository-local, ignored DerivedData directory. No recipe
|
|
# patches, restores, or removes tracked project/configuration files.
|
|
|
|
project := "bitchat.xcodeproj"
|
|
macos_scheme := "bitchat (macOS)"
|
|
ios_scheme := "bitchat (iOS)"
|
|
derived_data := ".DerivedData"
|
|
|
|
default:
|
|
@echo "BitChat developer commands:"
|
|
@echo " just run Build and run the macOS app"
|
|
@echo " just build Build the macOS app without signing"
|
|
@echo " just test Run the SwiftPM test suite"
|
|
@echo " just test-ios Run tests on the iPhone 17 simulator"
|
|
@echo " just clean Remove repo-local build artifacts only"
|
|
@echo " just nuke Also remove nested package build caches"
|
|
@echo " just check Validate the development environment"
|
|
|
|
# Static guard against reintroducing source-restoring or source-deleting clean
|
|
# behavior. CI runs the same script directly.
|
|
check-clean-safety:
|
|
@bash scripts/check-just-clean-safety.sh
|
|
|
|
check: check-clean-safety
|
|
@echo "Checking prerequisites..."
|
|
@command -v xcodebuild >/dev/null 2>&1 || (echo "❌ xcodebuild not found. Install full Xcode." && exit 1)
|
|
@developer_dir="$$(xcode-select -p 2>/dev/null)"; case "$$developer_dir" in *.app/Contents/Developer) ;; *) echo "❌ Full Xcode is not selected. Run: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer"; exit 1;; esac
|
|
@xcodebuild -version
|
|
@echo "✅ Development environment ready (a signing identity is not required for just build)"
|
|
|
|
build: check
|
|
@echo "Building BitChat for macOS..."
|
|
@xcodebuild -project "{{project}}" -scheme "{{macos_scheme}}" -configuration Debug -derivedDataPath "{{derived_data}}" CODE_SIGNING_ALLOWED=NO build
|
|
|
|
run: build
|
|
@app="{{derived_data}}/Build/Products/Debug/bitchat.app"; test -d "$$app" || (echo "❌ Built app not found at $$app" && exit 1); open "$$app"
|
|
|
|
# Backward-compatible alias for the old quick-run recipe.
|
|
dev-run: run
|
|
|
|
test:
|
|
@swift test
|
|
|
|
test-ios: check
|
|
@xcodebuild -project "{{project}}" -scheme "{{ios_scheme}}" -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 17' -derivedDataPath "{{derived_data}}" test
|
|
|
|
# Artifact-only cleanup. In particular, this recipe never invokes Git and
|
|
# never writes, moves, restores, or removes source/configuration files.
|
|
clean:
|
|
@echo "Cleaning repo-local build artifacts..."
|
|
@rm -rf -- "{{derived_data}}" ".build"
|
|
@echo "✅ Cleaned {{derived_data}} and .build; tracked files were untouched"
|
|
|
|
# Retain the familiar command, but keep it artifact-only as well.
|
|
nuke: clean
|
|
@echo "Cleaning nested package build caches..."
|
|
@find localPackages -type d -name .build -prune -exec rm -rf -- {} +
|
|
@rm -rf -- ".cache"
|
|
@echo "✅ Removed repository build caches; tracked files were untouched"
|
|
|
|
info:
|
|
@echo "BitChat - decentralized mesh messaging"
|
|
@echo "macOS 13+ and iOS 16+"
|
|
@echo "Bluetooth mesh behavior requires physical Bluetooth-capable devices"
|