From 7a66421653b3f898dbbea120c99b88ba6e476f9b Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 4 May 2026 09:10:03 +0200 Subject: [PATCH] corregt makefile per a macos --- Makefile | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index d1b04dd..da763c4 100644 --- a/Makefile +++ b/Makefile @@ -24,11 +24,12 @@ endif PACK_SOURCES := $(DIR_TOOLS)pack_resources.cpp $(DIR_SOURCES)resource_pack.cpp PACK_INCLUDES := -I$(DIR_ROOT) -# Versión automática basada en la fecha actual (específica por SO) +# Versión automática basada en la fecha actual (formato YYYY.MM.DD para que +# CFBundleShortVersionString del bundle macOS sea conforme a la spec de Apple). ifeq ($(OS),Windows_NT) - VERSION := $(shell powershell -Command "Get-Date -Format 'yyyy-MM-dd'") + VERSION := $(shell powershell -Command "Get-Date -Format 'yyyy.MM.dd'") else - VERSION := $(shell date +%Y-%m-%d) + VERSION := $(shell date +%Y.%m.%d) endif # Variables específicas para Windows (usando APP_NAME) @@ -42,7 +43,6 @@ endif # Nombres para los ficheros de lanzamiento WINDOWS_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-win32-x64.zip -MACOS_INTEL_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-macos-intel.dmg MACOS_APPLE_SILICON_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-macos-apple-silicon.dmg LINUX_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-linux.tar.gz RASPI_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-raspberry.tar.gz @@ -177,13 +177,32 @@ macos: macos_release: force_resource_pack @echo "Creando release para macOS - Version: $(VERSION)" -# Verificar e instalar create-dmg si es necesario - @which create-dmg > /dev/null || (echo "Instalando create-dmg..." && brew install create-dmg) +# Verifica dependencias necesarias (create-dmg). Si falta, intenta instalarla +# con brew; si brew tampoco está, indica el comando exacto al usuario. + @command -v create-dmg >/dev/null 2>&1 || { \ + echo ""; \ + echo "============================================"; \ + echo " Falta la dependencia: create-dmg"; \ + echo "============================================"; \ + if command -v brew >/dev/null 2>&1; then \ + echo " Instalando con: brew install create-dmg"; \ + brew install create-dmg || { \ + echo ""; \ + echo " ERROR: 'brew install create-dmg' ha fallado."; \ + echo " Ejecuta el comando manualmente y vuelve a probar."; \ + exit 1; \ + }; \ + else \ + echo " Homebrew no está instalado."; \ + echo " Instálalo desde https://brew.sh y luego ejecuta:"; \ + echo " brew install create-dmg"; \ + exit 1; \ + fi; \ + } # Elimina datos de compilaciones anteriores $(RMDIR) "$(RELEASE_FOLDER)" $(RMDIR) Frameworks - $(RMFILE) "$(MACOS_INTEL_RELEASE)" $(RMFILE) "$(MACOS_APPLE_SILICON_RELEASE)" # Limpia archivos temporales de create-dmg y desmonta volúmenes @@ -210,6 +229,12 @@ macos_release: force_resource_pack cp LICENSE "$(RELEASE_FOLDER)" cp README.md "$(RELEASE_FOLDER)" +# Actualiza versión en Info.plist + @echo "Actualizando Info.plist con versión $(VERSION)..." + @RAW_VERSION=$$(echo "$(VERSION)" | sed 's/^v//'); \ + sed -i '' '/CFBundleShortVersionString<\/key>/{n;s|.*|'"$$RAW_VERSION"'|;}' "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Info.plist"; \ + sed -i '' '/CFBundleVersion<\/key>/{n;s|.*|'"$$RAW_VERSION"'|;}' "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Info.plist" + # Compila la versión para procesadores Apple Silicon $(CXX) $(APP_SOURCES) $(INCLUDES) -DMACOS_BUNDLE -DSDL_DISABLE_IMMINTRIN_H $(CXXFLAGS) $(LDFLAGS) -o "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos12