diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 572dc7d..f67f8e9 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -1,14 +1,3 @@ -# Workflow para crear releases automáticos cuando se crea un tag -# -# Uso: -# git tag v0.2 -# git push --tags -# -# Esto disparará el workflow y creará un release con binarios para: -# - Linux x64 -# - Windows x64 -# - Raspberry Pi ARM64 - name: Release on: @@ -16,239 +5,117 @@ on: tags: - 'v*' -env: - SDL3_VERSION: "3.2.26" - jobs: # ============================================================================ - # BUILD LINUX x64 + # BUILD LINUX (Nativo) # ============================================================================ build-linux: runs-on: ubuntu-latest - container: - image: ubuntu:24.04 + container: ubuntu:latest steps: - name: Instalar dependencias run: | - apt-get update - apt-get install -y \ - nodejs npm \ - build-essential cmake git pkg-config \ - libgl1-mesa-dev libglu1-mesa-dev \ - libx11-dev libxext-dev libxrandr-dev libxcursor-dev \ + apt-get update && apt-get install -y \ + curl gnupg build-essential cmake git pkg-config \ + libgl1-mesa-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev \ libxi-dev libxinerama-dev libxxf86vm-dev libxss-dev \ - libasound2-dev libpulse-dev libudev-dev libdbus-1-dev \ - libwayland-dev libxkbcommon-dev - - - name: Compilar SDL3 - run: | - cd /tmp - git clone --depth 1 --branch release-${{ env.SDL3_VERSION }} https://github.com/libsdl-org/SDL.git - cd SDL - cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr - cmake --build build -j$(nproc) - cmake --install build + libasound2-dev libpulse-dev libudev-dev libwayland-dev libxkbcommon-dev \ + libxtst-dev libdbus-1-dev libdrm-dev libgbm-dev \ + && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ + && apt-get install -y nodejs \ + && rm -rf /var/lib/apt/lists/* - name: Checkout uses: actions/checkout@v4 - - name: Generar project.h + - name: Setup SDL3 run: | - GIT_HASH=$(git rev-parse --short=7 HEAD) - RAW_VERSION=$(echo "${{ github.ref_name }}" | sed 's/^v//') - TARGET_NAME=$(awk '/^project/ {gsub(/[)(]/, " "); print $2}' CMakeLists.txt) - LONG_NAME=$(grep 'PROJECT_LONG_NAME' CMakeLists.txt | sed 's/.*"\(.*\)".*/\1/') - 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 + git clone https://github.com/libsdl-org/SDL.git /tmp/SDL3 \ + && cd /tmp/SDL3 \ + && mkdir build && cd build \ + && cmake .. -DCMAKE_BUILD_TYPE=Release \ + && make -j$(nproc) \ + && make install \ + && rm -rf /tmp/SDL3 - - name: Compilar pack_tool + - name: Compilar run: | - g++ -std=c++20 -Wall -Os -Isource \ - tools/pack_resources/pack_resources.cpp \ - source/core/resources/resource_pack.cpp \ - -o tools/pack_resources/pack_resources - - - name: Generar resources.pack - run: ./tools/pack_resources/pack_resources data resources.pack - - - name: Compilar para Linux - run: | - TARGET_NAME=$(awk '/^project/ {gsub(/[)(]/, " "); print $2}' CMakeLists.txt) - CPP_FILES=$(find source -name "*.cpp") - g++ $CPP_FILES \ - -Isource -DRELEASE_BUILD -DLINUX_BUILD \ - -std=c++20 -Wall -Os -ffunction-sections -fdata-sections \ - -lSDL3 -lGL \ - -o $TARGET_NAME - strip -s -R .comment -R .gnu.version $TARGET_NAME --strip-unneeded - - - name: Empaquetar release - run: | - TARGET_NAME=$(awk '/^project/ {gsub(/[)(]/, " "); print $2}' CMakeLists.txt) - VERSION="${{ github.ref_name }}" - RELEASE_NAME="${TARGET_NAME}-${VERSION}-linux-x64.tar.gz" - mkdir -p release_tmp - cp $TARGET_NAME resources.pack LICENSE README.md gamecontrollerdb.txt release_tmp/ - tar -czvf $RELEASE_NAME -C release_tmp . - echo "RELEASE_FILE=$RELEASE_NAME" >> $GITHUB_ENV + export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig + make linux_release - name: Subir artefacto uses: actions/upload-artifact@v3 with: name: linux-build - path: ${{ env.RELEASE_FILE }} + path: ./*-linux.tar.gz # ============================================================================ - # BUILD WINDOWS x64 (cross-compile con MinGW) + # BUILD WINDOWS (Cross-Compile usando el nuevo target del Makefile) # ============================================================================ build-windows: runs-on: ubuntu-latest - container: - image: ubuntu:24.04 + container: ubuntu:latest steps: - name: Instalar dependencias run: | - apt-get update - apt-get install -y nodejs npm build-essential cmake git pkg-config wget mingw-w64 zip - - - name: Descargar SDL3 para Windows - run: | - cd /tmp - wget -q https://github.com/libsdl-org/SDL/releases/download/release-${{ env.SDL3_VERSION }}/SDL3-devel-${{ env.SDL3_VERSION }}-mingw.tar.gz - tar -xzf SDL3-devel-${{ env.SDL3_VERSION }}-mingw.tar.gz - # Copiar a ubicación estándar para MinGW - cp -r SDL3-${{ env.SDL3_VERSION }}/x86_64-w64-mingw32/* /usr/x86_64-w64-mingw32/ + apt-get update && apt-get install -y \ + curl build-essential cmake git pkg-config wget zip \ + mingw-w64 g++-mingw-w64-x86-64 binutils-mingw-w64-x86-64 \ + && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ + && apt-get install -y nodejs \ + && rm -rf /var/lib/apt/lists/* - name: Checkout uses: actions/checkout@v4 - - name: Generar project.h + - name: Setup SDL3 (MinGW) run: | - GIT_HASH=$(git rev-parse --short=7 HEAD) - RAW_VERSION=$(echo "${{ github.ref_name }}" | sed 's/^v//') - TARGET_NAME=$(awk '/^project/ {gsub(/[)(]/, " "); print $2}' CMakeLists.txt) - LONG_NAME=$(grep 'PROJECT_LONG_NAME' CMakeLists.txt | sed 's/.*"\(.*\)".*/\1/') - 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 + git clone https://github.com/libsdl-org/SDL.git /tmp/SDL3 \ + && cd /tmp/SDL3 \ + && mkdir build-mingw && cd build-mingw \ + && cmake .. \ + -DCMAKE_SYSTEM_NAME=Windows \ + -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc \ + -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ \ + -DCMAKE_RC_COMPILER=x86_64-w64-mingw32-windres \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr/x86_64-w64-mingw32 \ + && make -j$(nproc) \ + && make install \ + && rm -rf /tmp/SDL3 - - name: Compilar pack_tool - run: | - g++ -std=c++20 -Wall -Os -Isource \ - tools/pack_resources/pack_resources.cpp \ - source/core/resources/resource_pack.cpp \ - -o tools/pack_resources/pack_resources - - - name: Generar resources.pack - run: ./tools/pack_resources/pack_resources data resources.pack - - - name: Compilar para Windows (cross-compile) - run: | - TARGET_NAME=$(awk '/^project/ {gsub(/[)(]/, " "); print $2}' CMakeLists.txt) - LONG_NAME=$(grep 'PROJECT_LONG_NAME' CMakeLists.txt | sed 's/.*"\(.*\)".*/\1/') - CPP_FILES=$(find source -name "*.cpp") - x86_64-w64-mingw32-g++ $CPP_FILES \ - -Isource -DRELEASE_BUILD -DWINDOWS_BUILD \ - -std=c++20 -Wall -Os -ffunction-sections -fdata-sections \ - -Wl,--gc-sections -static-libstdc++ -static-libgcc \ - -Wl,-subsystem,windows \ - -lmingw32 -lws2_32 -lSDL3 -lopengl32 \ - -o "${LONG_NAME}.exe" - x86_64-w64-mingw32-strip -s -R .comment -R .gnu.version "${LONG_NAME}.exe" --strip-unneeded - - - name: Empaquetar release - run: | - TARGET_NAME=$(awk '/^project/ {gsub(/[)(]/, " "); print $2}' CMakeLists.txt) - LONG_NAME=$(grep 'PROJECT_LONG_NAME' CMakeLists.txt | sed 's/.*"\(.*\)".*/\1/') - VERSION="${{ github.ref_name }}" - RELEASE_NAME="${TARGET_NAME}-${VERSION}-win32-x64.zip" - mkdir -p release_tmp - cp "${LONG_NAME}.exe" resources.pack LICENSE README.md gamecontrollerdb.txt release_tmp/ - # Copiar SDL3.dll - cp /usr/x86_64-w64-mingw32/bin/SDL3.dll release_tmp/ - cd release_tmp && zip -r ../$RELEASE_NAME . && cd .. - echo "RELEASE_FILE=$RELEASE_NAME" >> $GITHUB_ENV + - name: Compilar + run: make windows_cross SDL_DLL_PATH=/usr/x86_64-w64-mingw32/bin/SDL3.dll - name: Subir artefacto uses: actions/upload-artifact@v3 with: name: windows-build - path: ${{ env.RELEASE_FILE }} + path: ./*-win32-x64.zip # ============================================================================ - # BUILD RASPBERRY PI ARM64 - DESACTIVADO TEMPORALMENTE - # Cross-compilation con OpenGL requiere libGL para ARM64 que no está disponible - # Se puede habilitar usando emulación ARM64 con QEMU en el futuro - # ============================================================================ - # build-rpi: - # runs-on: ubuntu-latest - # ... (código comentado) - - # ============================================================================ - # CREAR RELEASE EN GITEA + # RELEASE # ============================================================================ create-release: needs: [build-linux, build-windows] runs-on: ubuntu-latest - container: - image: ubuntu:24.04 steps: - - name: Instalar dependencias - run: | - apt-get update -qq - apt-get install -y -qq nodejs npm git jq curl - - - name: Checkout - uses: actions/checkout@v4 - - - name: Descargar todos los artefactos - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v3 with: path: artifacts + merge-multiple: true - - name: Listar artefactos - run: find artifacts -type f + - name: setup go + uses: https://github.com/actions/setup-go@v4 + with: + go-version: '>=1.20.1' - name: Crear Release en Gitea - env: - GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - # Crear release via API de Gitea - RELEASE_RESPONSE=$(curl -s -X POST \ - -H "Authorization: token $GITEA_TOKEN" \ - -H "Content-Type: application/json" \ - -d "{\"tag_name\": \"${{ github.ref_name }}\", \"name\": \"${{ github.ref_name }}\", \"body\": \"Release ${{ github.ref_name }}\", \"draft\": false, \"prerelease\": false}" \ - "${{ github.server_url }}/api/v1/repos/${{ github.repository }}/releases") + uses: https://gitea.com/actions/release-action@main + with: + files: artifacts/* + api_key: ${{ secrets.RELEASE_TOKEN }} + tag: ${{ github.ref_name }} + generate_release_notes: true - echo "Release response: $RELEASE_RESPONSE" - RELEASE_ID=$(echo "$RELEASE_RESPONSE" | jq -r '.id') - echo "Release ID: $RELEASE_ID" - if [ "$RELEASE_ID" = "null" ] || [ -z "$RELEASE_ID" ]; then - echo "Error: No se pudo crear el release" - exit 1 - fi - - # Subir cada artefacto - for file in artifacts/**/*; do - if [ -f "$file" ]; then - filename=$(basename "$file") - echo "Subiendo: $filename" - curl -s -X POST \ - -H "Authorization: token $GITEA_TOKEN" \ - -H "Content-Type: application/octet-stream" \ - --data-binary "@$file" \ - "${{ github.server_url }}/api/v1/repos/${{ github.repository }}/releases/$RELEASE_ID/assets?name=$filename" - fi - done - - echo "Release creado: ${{ github.server_url }}/${{ github.repository }}/releases/tag/${{ github.ref_name }}" diff --git a/.gitignore b/.gitignore index aac4913..74ff84e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +# Genericos .vscode/ *.DS_Store thumbs.db @@ -11,16 +12,23 @@ desktop.ini *.app *_debug* *.Identifier -pollo* + +# Herramientas de build build/ resources.pack pollo_release/ tools/pack_resources/pack_resources tools/pack_resources/pack_resources.exe +# Archivos generados +source/project.h + # CI/CD runner data (local) docker/runner-data/ docker/config.yaml # Claude Code local settings (mantener carpeta .claude/ para comandos) .claude/settings.local.json + +# Ejecutables +pollo \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ac446a..dd11546 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ # CMakeLists.txt cmake_minimum_required(VERSION 3.10) -project(pollo VERSION 0.1) +project(pollo VERSION 0.1.0) # Info del proyecto para version.h set(PROJECT_LONG_NAME "Los pollos hermanos") @@ -36,7 +36,7 @@ else() endif() # Configurar archivo de versión -configure_file(${CMAKE_SOURCE_DIR}/source/project.h.in ${CMAKE_SOURCE_DIR}/source/project.h @ONLY) +configure_file(${CMAKE_SOURCE_DIR}/source/project.h.in ${CMAKE_BINARY_DIR}/project.h @ONLY) # --- 1. LISTA EXPLÍCITA DE FUENTES --- set(APP_SOURCES diff --git a/Makefile b/Makefile index 6891060..7565281 100644 --- a/Makefile +++ b/Makefile @@ -118,7 +118,7 @@ ALL_SOURCES := $(APP_SOURCES) # ============================================================================== # INCLUDES # ============================================================================== -INCLUDES := -Isource +INCLUDES := -Isource -Ibuild # ============================================================================== # COMPILER FLAGS (OS-specific) @@ -196,7 +196,8 @@ windows_release: # Generate project.h from project.h.in @echo "Generando project.h..." - @powershell -Command "$$GIT_HASH = (git rev-parse --short=7 HEAD 2>$$null); if (-not $$GIT_HASH) { $$GIT_HASH = 'unknown' }; $$RAW_VERSION = '$(VERSION)' -replace '^v', ''; $$COPYRIGHT = (Select-String -Path 'CMakeLists.txt' -Pattern 'set\(PROJECT_COPYRIGHT \"(.+?)\"').Matches.Groups[1].Value; (Get-Content source/project.h.in) -replace '@PROJECT_NAME@', '$(TARGET_NAME)' -replace '@PROJECT_LONG_NAME@', '$(LONG_NAME)' -replace '@PROJECT_VERSION@', $$RAW_VERSION -replace '@PROJECT_COPYRIGHT@', $$COPYRIGHT -replace '@GIT_HASH@', $$GIT_HASH | Set-Content source/project.h" + @powershell if (-not (Test-Path "build")) {New-Item "build" -ItemType Directory} + @powershell -Command "$$GIT_HASH = (git rev-parse --short=7 HEAD 2>$$null); if (-not $$GIT_HASH) { $$GIT_HASH = 'unknown' }; $$RAW_VERSION = '$(VERSION)' -replace '^v', ''; $$COPYRIGHT = (Select-String -Path 'CMakeLists.txt' -Pattern 'set\(PROJECT_COPYRIGHT \"(.+?)\"').Matches.Groups[1].Value; (Get-Content source/project.h.in) -replace '@PROJECT_NAME@', '$(TARGET_NAME)' -replace '@PROJECT_LONG_NAME@', '$(LONG_NAME)' -replace '@PROJECT_VERSION@', $$RAW_VERSION -replace '@PROJECT_COPYRIGHT@', $$COPYRIGHT -replace '@GIT_HASH@', $$GIT_HASH | Set-Content build/project.h" # Crea carpeta temporal 'RELEASE_FOLDER' powershell if (Test-Path "$(RELEASE_FOLDER)") {Remove-Item "$(RELEASE_FOLDER)" -Recurse -Force} @@ -245,6 +246,7 @@ macos_release: # Generate project.h from project.h.in @echo "Generando project.h..." + @$(MKDIR) build @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); \ @@ -253,7 +255,7 @@ macos_release: -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 + source/project.h.in > build/project.h # Elimina datos de compilaciones anteriores $(RMDIR) "$(RELEASE_FOLDER)" @@ -358,6 +360,7 @@ linux_release: # Generate project.h from project.h.in @echo "Generando project.h..." + @$(MKDIR) build @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); \ @@ -366,7 +369,7 @@ linux_release: -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 + source/project.h.in > build/project.h # Elimina carpetas previas $(RMDIR) "$(RELEASE_FOLDER)" @@ -407,6 +410,7 @@ rpi_release: # Generate project.h from project.h.in @echo "Generando project.h..." + @$(MKDIR) build @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); \ @@ -415,7 +419,7 @@ rpi_release: -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 + source/project.h.in > build/project.h # Elimina carpetas previas $(RMDIR) "$(RELEASE_FOLDER)" @@ -441,6 +445,70 @@ rpi_release: # Elimina la carpeta temporal $(RMDIR) "$(RELEASE_FOLDER)" +# ============================================================================== +# CROSS-COMPILATION (Linux -> Windows) +# ============================================================================== +CROSS_CXX := x86_64-w64-mingw32-g++ +CROSS_STRIP := x86_64-w64-mingw32-strip +CROSS_WINDRES := x86_64-w64-mingw32-windres +CROSS_ZIP_FILE := $(TARGET_NAME)-$(VERSION)-win32-x64.zip + +CROSS_CXXFLAGS := -std=$(CPP_STANDARD) -Wall -Os -ffunction-sections -fdata-sections \ + -Wl,--gc-sections -static-libstdc++ -static-libgcc \ + -Wl,-subsystem,windows -DWINDOWS_BUILD -DRELEASE_BUILD +CROSS_LDFLAGS := -lmingw32 -lws2_32 -lSDL3 -lopengl32 + +windows_cross: + @$(MAKE) pack_tool + @$(MAKE) resources.pack + @echo "Cross-compiling para Windows desde Linux..." + +# 1. Generar 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 + +# 2. Preparar carpetas + $(RMDIR) "$(RELEASE_FOLDER)" + $(MKDIR) "$(RELEASE_FOLDER)" + +# 3. Copiar recursos base + cp resources.pack "$(RELEASE_FOLDER)" + cp LICENSE "$(RELEASE_FOLDER)" + cp README.md "$(RELEASE_FOLDER)" + cp gamecontrollerdb.txt "$(RELEASE_FOLDER)" + +# 4. GESTIÓN DE DLLs (Aquí está la mejora) +# [cite_start]Copia las DLLs locales si existen (como en tu windows_release) [cite: 16] + @if [ -d "release/dll" ] && [ "$$(ls -A release/dll/*.dll 2>/dev/null)" ]; then \ + cp release/dll/*.dll "$(RELEASE_FOLDER)"; \ + echo "Copiadas DLLs locales desde release/dll/"; \ + fi +# Copia la DLL de SDL3 externa si se pasa como argumento (Para el CI) + @if [ -n "$(SDL_DLL_PATH)" ]; then \ + cp "$(SDL_DLL_PATH)" "$(RELEASE_FOLDER)"; \ + echo "Copiada SDL3 DLL desde $(SDL_DLL_PATH)"; \ + fi + +# 5. Compilar + @echo "Compilando recursos e icono..." + $(CROSS_WINDRES) release/$(TARGET_NAME).rc -O coff -o $(RESOURCE_FILE) + @echo "Compilando ejecutable..." + $(CROSS_CXX) $(ALL_SOURCES) $(RESOURCE_FILE) $(INCLUDES) $(CROSS_CXXFLAGS) $(CROSS_LDFLAGS) -o "$(RELEASE_FOLDER)/$(APP_NAME).exe" + $(CROSS_STRIP) -s "$(RELEASE_FOLDER)/$(APP_NAME).exe" + +# 6. Empaquetar + @echo "Empaquetando en $(CROSS_ZIP_FILE)..." + cd $(RELEASE_FOLDER) && zip -r ../$(CROSS_ZIP_FILE) . + $(RMDIR) "$(RELEASE_FOLDER)" + @echo "✓ Release de Windows (Cross) completado: $(CROSS_ZIP_FILE)" + # ============================================================================== # SETUP # ============================================================================== diff --git a/release/pollo.rc b/release/pollo.rc new file mode 100644 index 0000000..2907ea3 --- /dev/null +++ b/release/pollo.rc @@ -0,0 +1,2 @@ +// pollo.rc +IDI_ICON1 ICON "icon.ico" diff --git a/release/pollo.res b/release/pollo.res new file mode 100644 index 0000000..6e6b921 Binary files /dev/null and b/release/pollo.res differ diff --git a/source/project.h b/source/project.h deleted file mode 100644 index 115ccfe..0000000 --- a/source/project.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - -namespace Project { -constexpr const char* NAME = "pollo"; -constexpr const char* LONG_NAME = "Los pollos hermanos"; -constexpr const char* VERSION = "0.1"; -constexpr const char* COPYRIGHT = "@2025 JailDesigner"; -constexpr const char* GIT_HASH = "1a6185b"; -} // namespace Project