Add Makefile to automate build process
This commit is contained in:
parent
357804c03d
commit
9af36f75f7
69
Makefile
Normal file
69
Makefile
Normal file
@ -0,0 +1,69 @@
|
||||
.PHONY: all clean whisper setup build check healthcheck help dev run
|
||||
|
||||
# Default target
|
||||
all: check build
|
||||
|
||||
# Development workflow
|
||||
dev: build run
|
||||
|
||||
# Prerequisites
|
||||
check:
|
||||
@echo "Checking prerequisites..."
|
||||
@command -v git >/dev/null 2>&1 || { echo "git is not installed"; exit 1; }
|
||||
@command -v xcodebuild >/dev/null 2>&1 || { echo "xcodebuild is not installed (need Xcode)"; exit 1; }
|
||||
@command -v swift >/dev/null 2>&1 || { echo "swift is not installed"; exit 1; }
|
||||
@echo "Prerequisites OK"
|
||||
|
||||
healthcheck: check
|
||||
|
||||
# Build process
|
||||
whisper:
|
||||
@if [ ! -d "whisper.cpp/build-apple/whisper.xcframework" ]; then \
|
||||
echo "Building whisper.xcframework..."; \
|
||||
git clone https://github.com/ggerganov/whisper.cpp.git || (cd whisper.cpp && git pull); \
|
||||
cd whisper.cpp && ./build-xcframework.sh; \
|
||||
else \
|
||||
echo "whisper.xcframework already built, skipping build"; \
|
||||
fi
|
||||
|
||||
setup: whisper
|
||||
@if [ ! -d "VoiceInk/whisper.xcframework" ]; then \
|
||||
echo "Copying whisper.xcframework to VoiceInk..."; \
|
||||
cp -r whisper.cpp/build-apple/whisper.xcframework VoiceInk/; \
|
||||
else \
|
||||
echo "whisper.xcframework already in VoiceInk, skipping copy"; \
|
||||
fi
|
||||
|
||||
build: setup
|
||||
xcodebuild -project VoiceInk.xcodeproj -scheme VoiceInk -configuration Debug CODE_SIGN_IDENTITY="" build
|
||||
|
||||
# Run application
|
||||
run:
|
||||
@echo "Looking for VoiceInk.app..."
|
||||
@APP_PATH=$$(find "$$HOME/Library/Developer/Xcode/DerivedData" -name "VoiceInk.app" -type d | head -1) && \
|
||||
if [ -n "$$APP_PATH" ]; then \
|
||||
echo "Found app at: $$APP_PATH"; \
|
||||
open "$$APP_PATH"; \
|
||||
else \
|
||||
echo "VoiceInk.app not found. Please run 'make build' first."; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
clean:
|
||||
@echo "Cleaning build artifacts..."
|
||||
@rm -rf whisper.cpp VoiceInk/whisper.xcframework
|
||||
@echo "Clean complete"
|
||||
|
||||
# Help
|
||||
help:
|
||||
@echo "Available targets:"
|
||||
@echo " check/healthcheck Check if required CLI tools are installed"
|
||||
@echo " whisper Clone and build whisper.cpp XCFramework"
|
||||
@echo " setup Copy whisper XCFramework to VoiceInk project"
|
||||
@echo " build Build the VoiceInk Xcode project"
|
||||
@echo " run Launch the built VoiceInk app"
|
||||
@echo " dev Build and run the app (for development)"
|
||||
@echo " all Run full build process (default)"
|
||||
@echo " clean Remove build artifacts"
|
||||
@echo " help Show this help message"
|
||||
Loading…
x
Reference in New Issue
Block a user