mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-25 14:05:41 -05:00
dfc30eeef5
To make sure that CI builds produced by Travis work on all supported versions of macOS and building Alacritty works on all supported versions, the minimum macOS version has been set in the Makefile. This sets the minimum macOS version to `10.11` as a reasonable estimation based on other applications. If the exact version chosen turns out to cause some issues, it can be changed in the future.
51 lines
1.4 KiB
Makefile
51 lines
1.4 KiB
Makefile
TARGET = alacritty
|
|
|
|
APP_NAME = Alacritty.app
|
|
ASSETS_DIR = assets
|
|
RELEASE_DIR = target/release
|
|
APP_TEMPLATE = $(ASSETS_DIR)/osx/$(APP_NAME)
|
|
APP_DIR = $(RELEASE_DIR)/osx
|
|
APP_BINARY = $(RELEASE_DIR)/$(TARGET)
|
|
APP_BINARY_DIR = $(APP_DIR)/$(APP_NAME)/Contents/MacOS
|
|
|
|
DMG_NAME = Alacritty.dmg
|
|
DMG_DIR = $(RELEASE_DIR)/osx
|
|
|
|
vpath $(TARGET) $(RELEASE_DIR)
|
|
vpath $(APP_NAME) $(APP_DIR)
|
|
vpath $(DMG_NAME) $(APP_DIR)
|
|
|
|
all: help
|
|
|
|
help: ## Prints help for targets with comments
|
|
@grep -E '^[a-zA-Z._-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
|
|
|
binary: | $(TARGET) ## Build release binary with cargo
|
|
$(TARGET):
|
|
MACOSX_DEPLOYMENT_TARGET="10.11" cargo build --release
|
|
|
|
app: | $(APP_NAME) ## Clone Alacritty.app template and mount binary
|
|
$(APP_NAME): $(TARGET) $(APP_TEMPLATE)
|
|
@mkdir -p $(APP_BINARY_DIR)
|
|
@cp -fRp $(APP_TEMPLATE) $(APP_DIR)
|
|
@cp -fp $(APP_BINARY) $(APP_BINARY_DIR)
|
|
@touch -r "$(APP_BINARY)" "$(APP_DIR)/$(APP_NAME)"
|
|
@echo "Created '$@' in '$(APP_DIR)'"
|
|
|
|
dmg: | $(DMG_NAME) ## Pack Alacritty.app into .dmg
|
|
$(DMG_NAME): $(APP_NAME)
|
|
@echo "Packing disk image..."
|
|
@hdiutil create $(DMG_DIR)/$(DMG_NAME) \
|
|
-volname "Alacritty" \
|
|
-fs HFS+ \
|
|
-srcfolder $(APP_DIR) \
|
|
-ov -format UDZO
|
|
@echo "Packed '$@' in '$(APP_DIR)'"
|
|
|
|
install: $(DMG_NAME) ## Mount disk image
|
|
@open $(DMG_DIR)/$(DMG_NAME)
|
|
|
|
.PHONY: app binary clean dmg install $(TARGET)
|
|
|
|
clean: ## Remove all artifacts
|
|
-rm -rf $(APP_DIR)
|