Иправления
This commit is contained in:
96
makefile
96
makefile
@@ -1,4 +1,4 @@
|
||||
.PHONY: all clean build-mac build-windows build-linux build-linux-musl package help quick package-single icons favicon
|
||||
.PHONY: all clean build-mac build-windows build-linux build-linux-musl package help quick package-single setup icons favicon windows-icon
|
||||
|
||||
# Название проекта
|
||||
PROJECT_NAME := ae_anons
|
||||
@@ -26,6 +26,11 @@ TIMING_FILE := .build_timing
|
||||
# Определение команды ImageMagick (v6 = convert, v7 = magick)
|
||||
IMAGEMAGICK := $(shell command -v magick 2>/dev/null || command -v convert 2>/dev/null || echo "false")
|
||||
|
||||
# Параметры Font Awesome
|
||||
FONTAWESOME_VERSION := 6.4.0
|
||||
FONTAWESOME_CSS_URL := https://cdnjs.cloudflare.com/ajax/libs/font-awesome/$(FONTAWESOME_VERSION)/css/all.min.css
|
||||
FONTAWESOME_FONTS_URL := https://cdnjs.cloudflare.com/ajax/libs/font-awesome/$(FONTAWESOME_VERSION)/webfonts
|
||||
|
||||
help:
|
||||
@echo "$(BOLD)$(CYAN)AE Anons - Makefile команды$(NC)"
|
||||
@echo ""
|
||||
@@ -44,9 +49,8 @@ help:
|
||||
@echo " make package - Создать пакеты для всех платформ"
|
||||
@echo " make package-single - Создать пакет для текущей платформы"
|
||||
@echo ""
|
||||
@echo "$(GREEN)Иконки:$(NC)"
|
||||
@echo " make icons - Создать все иконки (logo.ico, logo.icns, favicon.ico)"
|
||||
@echo " make favicon - Создать только favicon.ico"
|
||||
@echo "$(GREEN)Подготовка ресурсов:$(NC)"
|
||||
@echo " make setup - Загрузить и подготовить все статические ресурсы"
|
||||
@echo ""
|
||||
@echo "$(GREEN)Очистка:$(NC)"
|
||||
@echo " make clean - Очистить все сборки"
|
||||
@@ -99,48 +103,64 @@ define print_timing_summary
|
||||
endef
|
||||
|
||||
# ============================================
|
||||
# ИКОНКИ
|
||||
# ПОДГОТОВКА СТАТИЧЕСКИХ РЕСУРСОВ
|
||||
# ============================================
|
||||
|
||||
icons: favicon
|
||||
@echo "$(GREEN)Создание иконок для Windows и macOS...$(NC)"
|
||||
setup: setup-fontawesome icons
|
||||
@echo "$(GREEN)✅ Все статические ресурсы подготовлены$(NC)"
|
||||
|
||||
# Скачивает и подготавливает Font Awesome, если его ещё нет
|
||||
setup-fontawesome:
|
||||
@echo "$(GREEN)📦 Проверка Font Awesome...$(NC)"
|
||||
@if [ ! -f src/static/fontawesome/all.min.css ]; then \
|
||||
echo "$(YELLOW) Скачивание all.min.css и шрифтов...$(NC)"; \
|
||||
mkdir -p src/static/fontawesome/webfonts; \
|
||||
curl -sL -o src/static/fontawesome/all.min.css $(FONTAWESOME_CSS_URL); \
|
||||
curl -sL -o src/static/fontawesome/webfonts/fa-solid-900.woff2 $(FONTAWESOME_FONTS_URL)/fa-solid-900.woff2; \
|
||||
curl -sL -o src/static/fontawesome/webfonts/fa-regular-400.woff2 $(FONTAWESOME_FONTS_URL)/fa-regular-400.woff2; \
|
||||
curl -sL -o src/static/fontawesome/webfonts/fa-brands-400.woff2 $(FONTAWESOME_FONTS_URL)/fa-brands-400.woff2; \
|
||||
echo "$(GREEN) ✓ Font Awesome скачан$(NC)"; \
|
||||
else \
|
||||
echo "$(GREEN) ✓ Font Awesome уже существует$(NC)"; \
|
||||
fi
|
||||
@echo "$(GREEN) Исправление путей в all.min.css...$(NC)"
|
||||
@sed -i '' 's|../webfonts/|/static/fontawesome/webfonts/|g' src/static/fontawesome/all.min.css
|
||||
@echo "$(GREEN) ✓ Пути исправлены$(NC)"
|
||||
|
||||
# Генерация иконок (favicon, .ico, .icns) из логотипа
|
||||
icons:
|
||||
@echo "$(GREEN)🎨 Генерация иконок...$(NC)"
|
||||
@if [ "$(IMAGEMAGICK)" = "false" ]; then \
|
||||
echo "$(RED)❌ ImageMagick не установлен. Установите: brew install imagemagick$(NC)"; \
|
||||
exit 1; \
|
||||
fi
|
||||
# favicon.ico
|
||||
@$(IMAGEMAGICK) assets/logo.png -define icon:auto-resize=48,32,16 src/static/favicon.ico
|
||||
@echo "$(GREEN) ✓ src/static/favicon.ico$(NC)"
|
||||
# Windows .ico
|
||||
@$(IMAGEMAGICK) assets/logo.png -define icon:auto-resize=256,128,64,48,32,16 assets/logo.ico
|
||||
@echo "$(GREEN) ✓ assets/logo.ico$(NC)"
|
||||
# macOS .icns
|
||||
@mkdir -p assets/icon.iconset
|
||||
@sips -z 16 16 assets/logo.png --out assets/icon.iconset/icon_16x16.png 2>/dev/null
|
||||
@sips -z 32 32 assets/logo.png --out assets/icon.iconset/icon_16x16@2x.png 2>/dev/null
|
||||
@sips -z 32 32 assets/logo.png --out assets/icon.iconset/icon_32x32.png 2>/dev/null
|
||||
@sips -z 64 64 assets/logo.png --out assets/icon.iconset/icon_32x32@2x.png 2>/dev/null
|
||||
@sips -z 128 128 assets/logo.png --out assets/icon.iconset/icon_128x128.png 2>/dev/null
|
||||
@sips -z 256 256 assets/logo.png --out assets/icon.iconset/icon_128x128@2x.png 2>/dev/null
|
||||
@sips -z 256 256 assets/logo.png --out assets/icon.iconset/icon_256x256.png 2>/dev/null
|
||||
@sips -z 512 512 assets/logo.png --out assets/icon.iconset/icon_256x256@2x.png 2>/dev/null
|
||||
@sips -z 512 512 assets/logo.png --out assets/icon.iconset/icon_512x512.png 2>/dev/null
|
||||
@iconutil -c icns assets/icon.iconset -o assets/logo.icns 2>/dev/null
|
||||
@sips -z 16 16 assets/logo.png --out assets/icon.iconset/icon_16x16.png 2>/dev/null || true
|
||||
@sips -z 32 32 assets/logo.png --out assets/icon.iconset/icon_16x16@2x.png 2>/dev/null || true
|
||||
@sips -z 32 32 assets/logo.png --out assets/icon.iconset/icon_32x32.png 2>/dev/null || true
|
||||
@sips -z 64 64 assets/logo.png --out assets/icon.iconset/icon_32x32@2x.png 2>/dev/null || true
|
||||
@sips -z 128 128 assets/logo.png --out assets/icon.iconset/icon_128x128.png 2>/dev/null || true
|
||||
@sips -z 256 256 assets/logo.png --out assets/icon.iconset/icon_128x128@2x.png 2>/dev/null || true
|
||||
@sips -z 256 256 assets/logo.png --out assets/icon.iconset/icon_256x256.png 2>/dev/null || true
|
||||
@sips -z 512 512 assets/logo.png --out assets/icon.iconset/icon_256x256@2x.png 2>/dev/null || true
|
||||
@sips -z 512 512 assets/logo.png --out assets/icon.iconset/icon_512x512.png 2>/dev/null || true
|
||||
@iconutil -c icns assets/icon.iconset -o assets/logo.icns 2>/dev/null || true
|
||||
@rm -rf assets/icon.iconset
|
||||
@echo "$(GREEN) ✓ assets/logo.icns$(NC)"
|
||||
|
||||
favicon:
|
||||
@echo "$(GREEN)Создание favicon.ico...$(NC)"
|
||||
@if [ "$(IMAGEMAGICK)" = "false" ]; then \
|
||||
echo "$(RED)❌ ImageMagick не установлен. Установите: brew install imagemagick$(NC)"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@$(IMAGEMAGICK) assets/logo.png -define icon:auto-resize=48,32,16 src/static/favicon.ico
|
||||
@echo "$(GREEN) ✓ src/static/favicon.ico$(NC)"
|
||||
|
||||
# ============================================
|
||||
# ИКОНКА ДЛЯ WINDOWS
|
||||
# ИКОНКА ДЛЯ WINDOWS .EXE (доп. проверка)
|
||||
# ============================================
|
||||
windows-icon:
|
||||
@if [ ! -f assets/logo.ico ]; then \
|
||||
echo "$(YELLOW)logo.ico не найден, запускаю генерацию...$(NC)"; \
|
||||
echo "$(YELLOW)logo.ico не найден, запускаю генерацию иконок...$(NC)"; \
|
||||
$(MAKE) icons; \
|
||||
fi
|
||||
|
||||
@@ -167,7 +187,7 @@ endif
|
||||
# БЫСТРАЯ СБОРКА (ТЕКУЩАЯ ПЛАТФОРМА)
|
||||
# ============================================
|
||||
|
||||
quick: detect-platform
|
||||
quick: setup detect-platform
|
||||
|
||||
quick-release:
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
@@ -184,7 +204,7 @@ else
|
||||
@exit 1
|
||||
endif
|
||||
|
||||
quick-mac:
|
||||
quick-mac: setup
|
||||
@rm -f $(TIMING_FILE)
|
||||
@$(call measure_time,"🍎 macOS $(UNAME_M)",cargo build --release)
|
||||
@mkdir -p $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-macos-$(UNAME_M)
|
||||
@@ -193,7 +213,7 @@ quick-mac:
|
||||
@echo "$(GREEN)✅ Пакет: $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-macos-$(UNAME_M)/$(NC)"
|
||||
@$(call print_timing_summary)
|
||||
|
||||
quick-linux:
|
||||
quick-linux: setup
|
||||
@rm -f $(TIMING_FILE)
|
||||
@$(call measure_time,"🐧 Linux $(UNAME_M)",cargo build --target x86_64-unknown-linux-musl --release)
|
||||
@mkdir -p $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-linux-$(UNAME_M)
|
||||
@@ -202,7 +222,7 @@ quick-linux:
|
||||
@echo "$(GREEN)✅ Пакет: $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-linux-$(UNAME_M)/$(NC)"
|
||||
@$(call print_timing_summary)
|
||||
|
||||
quick-windows:
|
||||
quick-windows: setup windows-icon
|
||||
@rm -f $(TIMING_FILE)
|
||||
@if command -v x86_64-w64-mingw32-gcc >/dev/null 2>&1; then \
|
||||
$(call measure_time,"🪟 Windows x64",cargo build --target x86_64-pc-windows-gnu --release); \
|
||||
@@ -221,19 +241,19 @@ quick-windows:
|
||||
# СБОРКА ПОД КОНКРЕТНЫЕ ПЛАТФОРМЫ
|
||||
# ============================================
|
||||
|
||||
build-mac:
|
||||
build-mac: setup
|
||||
@echo "$(GREEN)🍎 Сборка для macOS...$(NC)"
|
||||
@time cargo build --release
|
||||
|
||||
build-windows: windows-icon
|
||||
build-windows: setup windows-icon
|
||||
@echo "$(GREEN)🪟 Сборка для Windows x86_64...$(NC)"
|
||||
@time cargo build --target x86_64-pc-windows-gnu --release
|
||||
|
||||
build-linux:
|
||||
|
||||
build-linux: setup
|
||||
@echo "$(GREEN)🐧 Сборка для Linux x86_64 (GNU)...$(NC)"
|
||||
@time cargo build --target x86_64-unknown-linux-gnu --release
|
||||
|
||||
build-linux-musl:
|
||||
build-linux-musl: setup
|
||||
@echo "$(GREEN)🐧 Сборка для Linux x86_64 (musl static)...$(NC)"
|
||||
@time cargo build --target x86_64-unknown-linux-musl --release
|
||||
|
||||
@@ -241,7 +261,7 @@ build-linux-musl:
|
||||
# СБОРКА ВСЕХ ПЛАТФОРМ С ТАЙМИНГОМ
|
||||
# ============================================
|
||||
|
||||
build-all:
|
||||
build-all: setup
|
||||
@rm -f $(TIMING_FILE)
|
||||
@echo "$(BOLD)$(CYAN)🚀 Сборка для всех платформ...$(NC)"
|
||||
@echo ""
|
||||
|
||||
Reference in New Issue
Block a user