afegit CI/CD

This commit is contained in:
2025-11-23 20:36:45 +01:00
parent f5b60ebbaf
commit ea30c24f7f
7 changed files with 387 additions and 18 deletions

View File

@@ -57,6 +57,7 @@ WINDOWS_RELEASE := $(TARGET_NAME)-$(VERSION)-win32-x64.zip
MACOS_INTEL_RELEASE := $(TARGET_NAME)-$(VERSION)-macos-intel.dmg
MACOS_APPLE_SILICON_RELEASE := $(TARGET_NAME)-$(VERSION)-macos-apple-silicon.dmg
LINUX_RELEASE := $(TARGET_NAME)-$(VERSION)-linux.tar.gz
RPI_RELEASE := $(TARGET_NAME)-$(VERSION)-rpi-arm64.tar.gz
# ==============================================================================
# SOURCE FILES
@@ -385,6 +386,55 @@ linux_release:
# Elimina la carpeta temporal
$(RMDIR) "$(RELEASE_FOLDER)"
# ==============================================================================
# COMPILACIÓN PARA RASPBERRY PI (ARM64)
# ==============================================================================
RPI_CXX := aarch64-linux-gnu-g++
RPI_STRIP := aarch64-linux-gnu-strip
RPI_CXXFLAGS := -std=$(CPP_STANDARD) -Wall -Os -ffunction-sections -fdata-sections -DLINUX_BUILD -DRPI_BUILD
RPI_LDFLAGS := -lSDL3 -lGL
rpi_release:
@$(MAKE) pack_tool
@$(MAKE) resources.pack
@echo "Creando release para Raspberry Pi (ARM64) - Version: $(VERSION)"
# Generate project.h from project.h.in
@echo "Generando project.h..."
@GIT_HASH=$$(git rev-parse --short=7 HEAD 2>/dev/null || echo "unknown"); \
RAW_VERSION=$$(echo "$(VERSION)" | sed 's/^v//'); \
COPYRIGHT=$$(sed -n 's/.*set(PROJECT_COPYRIGHT "\([^"]*\)".*/\1/p' CMakeLists.txt); \
sed -e "s/@PROJECT_NAME@/$(TARGET_NAME)/g" \
-e "s/@PROJECT_LONG_NAME@/$(LONG_NAME)/g" \
-e "s/@PROJECT_VERSION@/$$RAW_VERSION/g" \
-e "s/@PROJECT_COPYRIGHT@/$$COPYRIGHT/g" \
-e "s/@GIT_HASH@/$$GIT_HASH/g" \
source/project.h.in > source/project.h
# Elimina carpetas previas
$(RMDIR) "$(RELEASE_FOLDER)"
# Crea la carpeta temporal para realizar el lanzamiento
$(MKDIR) "$(RELEASE_FOLDER)"
# Copia ficheros
cp resources.pack "$(RELEASE_FOLDER)"
cp LICENSE "$(RELEASE_FOLDER)"
cp README.md "$(RELEASE_FOLDER)"
cp gamecontrollerdb.txt "$(RELEASE_FOLDER)"
# Compila con cross-compiler ARM64
$(RPI_CXX) $(ALL_SOURCES) $(INCLUDES) -DRELEASE_BUILD $(RPI_CXXFLAGS) $(RPI_LDFLAGS) -o "$(RELEASE_FILE)"
$(RPI_STRIP) -s -R .comment -R .gnu.version "$(RELEASE_FILE)" --strip-unneeded
# Empaqueta ficheros
$(RMFILE) "$(RPI_RELEASE)"
tar -czvf "$(RPI_RELEASE)" -C "$(RELEASE_FOLDER)" .
@echo "Release creado: $(RPI_RELEASE)"
# Elimina la carpeta temporal
$(RMDIR) "$(RELEASE_FOLDER)"
# ==============================================================================
# SETUP
# ==============================================================================
@@ -410,6 +460,7 @@ help:
@echo " linux - Compilar para Linux"
@echo " linux_debug - Compilar debug para Linux"
@echo " linux_release - Crear release completo para Linux"
@echo " rpi_release - Crear release para Raspberry Pi (ARM64)"
@echo " macos - Compilar para macOS"
@echo " macos_debug - Compilar debug para macOS"
@echo " macos_release - Crear release completo para macOS"
@@ -421,4 +472,4 @@ help:
FORCE:
.PHONY: windows windows_debug windows_release macos macos_debug macos_release linux linux_debug linux_release pack_tool resources.pack setup_hooks show_version help
.PHONY: windows windows_debug windows_release macos macos_debug macos_release linux linux_debug linux_release rpi_release pack_tool resources.pack setup_hooks show_version help