From ee8b09aa8f5507573c66094afcbfa0613efff252 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 4 May 2026 13:47:02 +0200 Subject: [PATCH] Simplifica Makefile a 3 targets delegats a CMake amb release a dist/ --- .gitignore | 2 +- CMakeLists.txt | 64 ++++-- Makefile | 413 ++++++++++++++-------------------- release/windows/shadertoy.res | Bin 149752 -> 0 bytes 4 files changed, 213 insertions(+), 266 deletions(-) delete mode 100644 release/windows/shadertoy.res diff --git a/.gitignore b/.gitignore index 48df47e..640102d 100644 --- a/.gitignore +++ b/.gitignore @@ -36,7 +36,7 @@ third_party/**/CMakeFiles/ third_party/**/CMakeCache.txt # Release artifacts -shadertoy_release/ +dist/ *.zip *.tar.gz *.dmg diff --git a/CMakeLists.txt b/CMakeLists.txt index 413d496..09a3929 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,17 +3,17 @@ cmake_minimum_required(VERSION 3.10) project(shadertoy VERSION 1.00) -# Establecer estándar de C++ +# Estàndard de C++ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) -# Establece la política CMP0072 para indicar cómo se debe seleccionar la implementación de OpenGL. -# En este caso, se elige la opción "GLVND", que utiliza bibliotecas modernas y modulares (libOpenGL, libGLX), -# en lugar de la biblioteca OpenGL clásica (libGL). Esto mejora la compatibilidad con drivers recientes -# y evita ambigüedades cuando se encuentran múltiples implementaciones de OpenGL en el sistema. +# Política CMP0072: usar GLVND (libOpenGL/libGLX) en lloc de la libGL clàssica. cmake_policy(SET CMP0072 NEW) set(OpenGL_GL_PREFERENCE GLVND) +# Opció per a empaquetat de bundle macOS (.app). El Makefile la passa amb -DMACOS_BUNDLE=ON. +option(MACOS_BUNDLE "Build for macOS .app bundle (rpath into ../Frameworks)" OFF) + # --- LISTA EXPLÍCITA DE FUENTES --- set(APP_SOURCES source/main.cpp @@ -29,15 +29,17 @@ set(EXTERNAL_SOURCES source/external/stb_vorbis_impl.cpp ) -# Configuración de SDL3 +# Configuració de SDL3 find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3) -message(STATUS "SDL3 encontrado: ${SDL3_INCLUDE_DIRS}") +message(STATUS "SDL3 trobat: ${SDL3_INCLUDE_DIRS}") -# --- COMPILACIÓN DE SHADERS (Vulkan SPIR-V) --- +# --- COMPILACIÓ DE SHADERS (Vulkan SPIR-V) --- +# Es fa a cada build: compile_shaders.cmake fa check de timestamps, no +# recompila el que ja està al dia. find_program(GLSLC_EXE NAMES glslc) if(GLSLC_EXE) - message(STATUS "glslc encontrado: ${GLSLC_EXE}") - add_custom_target(compile_shaders + message(STATUS "glslc trobat: ${GLSLC_EXE}") + add_custom_target(compile_shaders ALL COMMAND ${CMAKE_COMMAND} -D GLSLC=${GLSLC_EXE} -D SHADERS_DIR=${CMAKE_SOURCE_DIR}/data/shaders @@ -45,7 +47,19 @@ if(GLSLC_EXE) WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "Compiling .vk.glsl shaders to SPIR-V") else() - message(STATUS "glslc no encontrado — el target compile_shaders no estará disponible") + message(STATUS "glslc no trobat — el target compile_shaders no estarà disponible") +endif() + +# --- RECURSO DE WINDOWS (icona) --- +# A Windows compilem release/windows/shadertoy.rc amb windres via CMake. +# El .rc fa referència a icon.ico per nom; afegim --include-dir perquè el +# trobi a release/icons/. +if(WIN32) + enable_language(RC) + set(WIN_RC_FILE ${CMAKE_SOURCE_DIR}/release/windows/shadertoy.rc) + set_source_files_properties(${WIN_RC_FILE} PROPERTIES + COMPILE_FLAGS "--include-dir=${CMAKE_SOURCE_DIR}/release/icons") + list(APPEND APP_SOURCES ${WIN_RC_FILE}) endif() # --- AÑADIR EJECUTABLE --- @@ -58,41 +72,49 @@ target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_SOURCE_DIR}/source/external" ) -# Enlazar la librería SDL3 +# Enllaçar la llibreria SDL3 target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3) -# --- CONFIGURACIÓN PLATAFORMAS Y COMPILADOR --- -# Configuración de flags de compilación +# --- CONFIGURACIÓ PLATAFORMES I COMPILADOR --- +# Flags de compilació target_compile_options(${PROJECT_NAME} PRIVATE -Wall) target_compile_options(${PROJECT_NAME} PRIVATE $<$:-Os -ffunction-sections -fdata-sections>) -# Definir _DEBUG en modo Debug +# Definir _DEBUG en mode Debug target_compile_definitions(${PROJECT_NAME} PRIVATE $<$:_DEBUG>) -# Configuración específica para cada plataforma +# Configuració específica per a cada plataforma if(WIN32) target_compile_definitions(${PROJECT_NAME} PRIVATE WINDOWS_BUILD) target_link_libraries(${PROJECT_NAME} PRIVATE ws2_32 mingw32 opengl32) elseif(APPLE) target_compile_definitions(${PROJECT_NAME} PRIVATE MACOS_BUILD) target_compile_options(${PROJECT_NAME} PRIVATE -Wno-deprecated) - set(CMAKE_OSX_ARCHITECTURES "arm64") + if(NOT CMAKE_OSX_ARCHITECTURES) + set(CMAKE_OSX_ARCHITECTURES "arm64") + endif() + if(MACOS_BUNDLE) + target_compile_definitions(${PROJECT_NAME} PRIVATE MACOS_BUNDLE) + target_link_options(${PROJECT_NAME} PRIVATE + -rpath @executable_path/../Frameworks/ + ) + endif() elseif(UNIX AND NOT APPLE) target_compile_definitions(${PROJECT_NAME} PRIVATE LINUX_BUILD) endif() -# Configuración común para OpenGL +# Configuració comuna per a OpenGL if(NOT WIN32) find_package(OpenGL REQUIRED) if(OPENGL_FOUND) - message(STATUS "OpenGL encontrado: ${OPENGL_LIBRARIES}") + message(STATUS "OpenGL trobat: ${OPENGL_LIBRARIES}") target_link_libraries(${PROJECT_NAME} PRIVATE ${OPENGL_LIBRARIES}) else() - message(FATAL_ERROR "OpenGL no encontrado") + message(FATAL_ERROR "OpenGL no trobat") endif() endif() -# Especificar la ubicación del ejecutable en la raíz del proyecto +# El binari surt a l'arrel del projecte (com fins ara). set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}) diff --git a/Makefile b/Makefile index 973823d..2c13d2e 100644 --- a/Makefile +++ b/Makefile @@ -1,264 +1,189 @@ -# Directorios -DIR_ROOT := $(dir $(abspath $(MAKEFILE_LIST))) -DIR_SOURCES := $(addsuffix /, $(DIR_ROOT)source) -DIR_BIN := $(addsuffix /, $(DIR_ROOT)) -DIR_BUILD := $(addsuffix /, $(DIR_ROOT)build) +# ============================================================================== +# Makefile per a Shadertoy +# +# Tres targets: +# make → Release (cmake) +# make debug → Debug (cmake) +# make release → Release + empaquetat per a distribució a dist/ +# +# El SO es detecta automàticament. La compilació sempre passa per CMake. +# ============================================================================== -# Variables -TARGET_NAME := shadertoy -TARGET_FILE := $(DIR_BIN)$(TARGET_NAME) -APP_NAME := Shadertoy -RELEASE_FOLDER := shadertoy_release -RESOURCE_FILE := release/windows/shadertoy.res +PROJECT := shadertoy +APP_NAME := Shadertoy +DIR_ROOT := $(dir $(abspath $(MAKEFILE_LIST))) +BUILDDIR := build +DIST_DIR := dist +RELEASE_FOLDER := $(DIST_DIR)/_tmp -# 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). +# ============================================================================== +# DETECCIÓ DE PLATAFORMA + GENERADOR CMAKE + JOBS +# ============================================================================== +ifeq ($(OS),Windows_NT) + # MSYS2/Git Bash usa /dev/null, cmd.exe pur usa NUL. + ifneq ($(MSYSTEM),) + NULDEV := /dev/null + else + NULDEV := NUL + endif + JOBS ?= $(NUMBER_OF_PROCESSORS) + HAS_NINJA := $(shell ninja --version 2>$(NULDEV)) + ifneq ($(HAS_NINJA),) + CMAKE_GEN := -G "Ninja" + else + CMAKE_GEN := -G "MinGW Makefiles" + endif + UNAME_S := Windows + SHELL := cmd.exe +else + NULDEV := /dev/null + JOBS ?= $(shell nproc 2>/dev/null || echo 4) + CMAKE_GEN := + UNAME_S := $(shell uname -s) +endif + +# ============================================================================== +# VERSIÓ (data, format YYYY.MM.DD) +# ============================================================================== ifeq ($(OS),Windows_NT) VERSION := $(shell powershell -Command "Get-Date -Format 'yyyy.MM.dd'") else VERSION := $(shell date +%Y.%m.%d) endif -# Variables específicas para Windows (usando APP_NAME) +# ============================================================================== +# NOMS DELS ARTEFACTES DE RELEASE +# ============================================================================== +WINDOWS_RELEASE := $(DIST_DIR)/$(PROJECT)-$(VERSION)-win32-x64.zip +MACOS_APPLE_SILICON_RELEASE := $(DIST_DIR)/$(PROJECT)-$(VERSION)-macos-apple-silicon.dmg +LINUX_RELEASE := $(DIST_DIR)/$(PROJECT)-$(VERSION)-linux.tar.gz + +.PHONY: all debug release clean help _windows_release _macos_release _linux_release + +# ============================================================================== +# COMPILACIÓ (delegada a CMake) +# ============================================================================== +all: + @cmake $(CMAKE_GEN) -S . -B $(BUILDDIR) -DCMAKE_BUILD_TYPE=Release + @cmake --build $(BUILDDIR) -j$(JOBS) + +debug: + @cmake $(CMAKE_GEN) -S . -B $(BUILDDIR) -DCMAKE_BUILD_TYPE=Debug + @cmake --build $(BUILDDIR) -j$(JOBS) + +# ============================================================================== +# RELEASE (auto-dispatch per SO) +# ============================================================================== +release: ifeq ($(OS),Windows_NT) - WIN_TARGET_FILE := $(DIR_BIN)$(APP_NAME) - WIN_RELEASE_FILE := $(RELEASE_FOLDER)/$(APP_NAME) + @"$(MAKE)" _windows_release else - WIN_TARGET_FILE := $(TARGET_FILE) - WIN_RELEASE_FILE := $(RELEASE_FOLDER)/$(TARGET_NAME) +ifeq ($(UNAME_S),Darwin) + @$(MAKE) _macos_release +else + @$(MAKE) _linux_release +endif endif -# Nombres para los ficheros de lanzamiento -WINDOWS_RELEASE := $(TARGET_NAME)-$(VERSION)-win32-x64.zip -MACOS_APPLE_SILICON_RELEASE := $(TARGET_NAME)-$(VERSION)-macos-apple-silicon.dmg -LINUX_RELEASE := $(TARGET_NAME)-$(VERSION)-linux.tar.gz +clean: + @rm -rf $(BUILDDIR) $(DIST_DIR) -# Lista completa de archivos fuente -APP_SOURCES := \ - source/main.cpp \ - source/rendering/shader_backend.cpp \ - source/rendering/opengl_shader_backend.cpp \ - source/rendering/sdl3gpu/sdl3gpu_shader_backend.cpp \ - source/audio/jail_audio.cpp \ - source/external/glad/src/glad.c \ - source/external/stb_vorbis_impl.cpp +# ============================================================================== +# RELEASE LINUX +# ============================================================================== +_linux_release: + @echo "Creant release per a Linux - Versió: $(VERSION)" + @cmake $(CMAKE_GEN) -S . -B $(BUILDDIR) -DCMAKE_BUILD_TYPE=Release + @cmake --build $(BUILDDIR) -j$(JOBS) + @mkdir -p $(DIST_DIR) + @rm -rf $(RELEASE_FOLDER) + @mkdir -p $(RELEASE_FOLDER) + @cp -R data $(RELEASE_FOLDER)/ + @cp LICENSE $(RELEASE_FOLDER)/ + @cp README.md $(RELEASE_FOLDER)/ + @cp $(PROJECT) $(RELEASE_FOLDER)/ + @strip -s -R .comment -R .gnu.version $(RELEASE_FOLDER)/$(PROJECT) --strip-unneeded + @rm -f $(LINUX_RELEASE) + @tar -czf $(LINUX_RELEASE) -C $(RELEASE_FOLDER) . + @echo "Release creat: $(LINUX_RELEASE)" + @rm -rf $(RELEASE_FOLDER) -# Includes -INCLUDES := -Isource -Isource/external/glad/include -Isource/external - -# Variables según el sistema operativo -ifeq ($(OS),Windows_NT) - FixPath = $(subst /,\\,$1) - CXXFLAGS := -std=c++17 -Wall -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -static-libgcc -Wl,-Bstatic -lpthread -Wl,-Bdynamic -Wl,-subsystem,windows -DWINDOWS_BUILD - CXXFLAGS_DEBUG := -std=c++17 -Wall -g -D_DEBUG -DWINDOWS_BUILD - LDFLAGS := -lmingw32 -lws2_32 -lSDL3 -lopengl32 - RM := del /Q - MKDIR := mkdir -else - FixPath = $1 - CXXFLAGS := -std=c++17 -Wall -Os -ffunction-sections -fdata-sections - CXXFLAGS_DEBUG := -std=c++17 -Wall -g -D_DEBUG - LDFLAGS := -lSDL3 - RMFILE := rm -f - RMDIR := rm -rdf - MKDIR := mkdir -p - UNAME_S := $(shell uname -s) - ifeq ($(UNAME_S),Linux) - CXXFLAGS += -DLINUX_BUILD - LDFLAGS += -lGL - endif - ifeq ($(UNAME_S),Darwin) - CXXFLAGS += -Wno-deprecated -DMACOS_BUILD - CXXFLAGS_DEBUG += -Wno-deprecated -DMACOS_BUILD - LDFLAGS += -framework OpenGL - # Configurar arquitectura (por defecto arm64, como en CMake) - CXXFLAGS += -arch arm64 - CXXFLAGS_DEBUG += -arch arm64 - endif -endif - -# Reglas para compilación -windows: - @echo off - @echo Compilando para Windows con nombre: "$(APP_NAME).exe" - windres release/windows/shadertoy.rc -O coff -o $(RESOURCE_FILE) - $(CXX) $(APP_SOURCES) $(RESOURCE_FILE) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) -o "$(WIN_TARGET_FILE).exe" - strip -s -R .comment -R .gnu.version "$(WIN_TARGET_FILE).exe" --strip-unneeded - -windows_debug: - @echo off - @echo Compilando version debug para Windows: "$(APP_NAME)_debug.exe" - $(CXX) $(APP_SOURCES) $(INCLUDES) -DDEBUG $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(WIN_TARGET_FILE)_debug.exe" - -windows_release: - @echo off - @echo Creando release para Windows - Version: $(VERSION) - -# Crea carpeta temporal 'RELEASE_FOLDER' - powershell if (Test-Path "$(RELEASE_FOLDER)") {Remove-Item "$(RELEASE_FOLDER)" -Recurse -Force} - powershell if (-not (Test-Path "$(RELEASE_FOLDER)")) {New-Item "$(RELEASE_FOLDER)" -ItemType Directory} - -# Copia la carpeta 'data' (que ahora contiene shaders y music) - powershell Copy-Item -Path "data" -Destination "$(RELEASE_FOLDER)" -recurse -Force - -# Copia los ficheros que están en la raíz del proyecto - powershell Copy-Item "LICENSE" -Destination "$(RELEASE_FOLDER)" - powershell Copy-Item "README.md" -Destination "$(RELEASE_FOLDER)" - powershell Copy-Item "release\windows\dll\*.dll" -Destination "$(RELEASE_FOLDER)" - -# Compila el recurso de icono - @windres release/windows/shadertoy.rc -O coff -o $(RESOURCE_FILE) - -# Compila - $(CXX) $(APP_SOURCES) $(RESOURCE_FILE) $(INCLUDES) -DRELEASE_BUILD $(CXXFLAGS) $(LDFLAGS) -o "$(WIN_RELEASE_FILE).exe" - strip -s -R .comment -R .gnu.version "$(WIN_RELEASE_FILE).exe" --strip-unneeded - -# Crea el fichero .zip - powershell if (Test-Path "$(WINDOWS_RELEASE)") {Remove-Item "$(WINDOWS_RELEASE)"} - powershell Compress-Archive -Path "$(RELEASE_FOLDER)"/* -DestinationPath "$(WINDOWS_RELEASE)" - @echo Release creado: $(WINDOWS_RELEASE) - -# Elimina la carpeta temporal 'RELEASE_FOLDER' - powershell if (Test-Path "$(RELEASE_FOLDER)") {Remove-Item "$(RELEASE_FOLDER)" -Recurse -Force} - -macos: - @echo "Compilando para macOS: $(TARGET_NAME)" - $(CXX) $(APP_SOURCES) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)" - -macos_debug: - @echo "Compilando version debug para macOS: $(TARGET_NAME)_debug" - $(CXX) $(APP_SOURCES) $(INCLUDES) -DDEBUG $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(TARGET_FILE)_debug" - -macos_release: - @echo "Creando release para macOS - Version: $(VERSION)" - -# Verifica dependencias necesarias (create-dmg). Si falta, intenta instalarla -# con brew; si brew tampoco está, indica el comando exacto al usuario. +# ============================================================================== +# RELEASE MACOS (Apple Silicon, .dmg amb .app bundle) +# ============================================================================== +_macos_release: + @echo "Creant release per a macOS - Versió: $(VERSION)" @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; \ + echo "Falta create-dmg. Instal·la amb: brew install create-dmg"; \ + exit 1; \ } - -# Elimina datos de compilaciones anteriores - $(RMDIR) "$(RELEASE_FOLDER)" - $(RMFILE) tmp.dmg - $(RMFILE) "$(MACOS_APPLE_SILICON_RELEASE)" - -# Crea la carpeta temporal para hacer el trabajo y las carpetas obligatorias para crear una app de macos - $(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks" - $(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS" - $(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" - -# Copia carpetas y ficheros - cp -R data "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" - cp -R release/macos/frameworks/SDL3.xcframework "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks" - cp release/icons/icon.icns "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" - cp release/macos/Info.plist "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents" - cp LICENSE "$(RELEASE_FOLDER)" - cp README.md "$(RELEASE_FOLDER)" - -# Actualiza versión en Info.plist - @echo "Actualizando Info.plist con versión $(VERSION)..." + @cmake -S . -B $(BUILDDIR) -DCMAKE_BUILD_TYPE=Release -DMACOS_BUNDLE=ON -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 + @cmake --build $(BUILDDIR) -j$(JOBS) + @mkdir -p $(DIST_DIR) + @rm -rf $(RELEASE_FOLDER) + @rm -f tmp.dmg "$(MACOS_APPLE_SILICON_RELEASE)" $(DIST_DIR)/rw.* + @mkdir -p "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks" + @mkdir -p "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS" + @mkdir -p "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" + @cp -R data "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources/" + @cp -R release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks/" + @cp release/icons/icon.icns "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources/" + @cp release/macos/Info.plist "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/" + @cp $(PROJECT) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(PROJECT)" + @cp LICENSE "$(RELEASE_FOLDER)/" + @cp README.md "$(RELEASE_FOLDER)/" @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" + 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" + @codesign --deep --force --sign - --timestamp=none "$(RELEASE_FOLDER)/$(APP_NAME).app" + @create-dmg \ + --volname "$(APP_NAME)" \ + --window-pos 200 120 \ + --window-size 720 300 \ + --icon-size 96 \ + --text-size 12 \ + --icon "$(APP_NAME).app" 278 102 \ + --icon "LICENSE" 441 102 \ + --icon "README.md" 604 102 \ + --app-drop-link 115 102 \ + --hide-extension "$(APP_NAME).app" \ + "$(MACOS_APPLE_SILICON_RELEASE)" \ + "$(RELEASE_FOLDER)" || true + @echo "Release creat: $(MACOS_APPLE_SILICON_RELEASE)" + @rm -rf $(RELEASE_FOLDER) + @rm -f $(DIST_DIR)/rw.* -# Compila la versión para procesadores Apple Silicon - $(CXX) $(APP_SOURCES) $(INCLUDES) -DMACOS_BUNDLE -DRELEASE_BUILD $(CXXFLAGS) $(LDFLAGS) -o "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos11 +# ============================================================================== +# RELEASE WINDOWS (.zip amb DLLs) +# ============================================================================== +_windows_release: + @echo off + @echo Creant release per a Windows - Versió: $(VERSION) + @cmake $(CMAKE_GEN) -S . -B $(BUILDDIR) -DCMAKE_BUILD_TYPE=Release + @cmake --build $(BUILDDIR) -j$(JOBS) + @powershell -Command "if (-not (Test-Path '$(DIST_DIR)')) {New-Item '$(DIST_DIR)' -ItemType Directory | Out-Null}" + @powershell -Command "if (Test-Path '$(RELEASE_FOLDER)') {Remove-Item '$(RELEASE_FOLDER)' -Recurse -Force}" + @powershell -Command "New-Item '$(RELEASE_FOLDER)' -ItemType Directory | Out-Null" + @powershell -Command "Copy-Item -Path 'data' -Destination '$(RELEASE_FOLDER)' -Recurse" + @powershell -Command "Copy-Item 'LICENSE' -Destination '$(RELEASE_FOLDER)'" + @powershell -Command "Copy-Item 'README.md' -Destination '$(RELEASE_FOLDER)'" + @powershell -Command "Copy-Item 'release\windows\dll\*.dll' -Destination '$(RELEASE_FOLDER)'" + @powershell -Command "Copy-Item -Path '$(PROJECT).exe' -Destination '$(RELEASE_FOLDER)/$(APP_NAME).exe'" + @strip -s -R .comment -R .gnu.version "$(RELEASE_FOLDER)/$(APP_NAME).exe" --strip-unneeded + @powershell -Command "if (Test-Path '$(WINDOWS_RELEASE)') {Remove-Item '$(WINDOWS_RELEASE)'}" + @powershell -Command "Compress-Archive -Path '$(RELEASE_FOLDER)/*' -DestinationPath '$(WINDOWS_RELEASE)'" + @echo Release creat: $(WINDOWS_RELEASE) + @powershell -Command "Remove-Item '$(RELEASE_FOLDER)' -Recurse -Force" -# Firma la aplicación - codesign --deep --force --sign - --timestamp=none "$(RELEASE_FOLDER)/$(APP_NAME).app" - -# Empaqueta el .dmg de la versión Apple Silicon con create-dmg - @echo "Creando DMG Apple Silicon con iconos de 96x96..." - create-dmg \ - --volname "$(APP_NAME)" \ - --window-pos 200 120 \ - --window-size 720 300 \ - --icon-size 96 \ - --text-size 12 \ - --icon "$(APP_NAME).app" 278 102 \ - --icon "LICENSE" 441 102 \ - --icon "README.md" 604 102 \ - --app-drop-link 115 102 \ - --hide-extension "$(APP_NAME).app" \ - "$(MACOS_APPLE_SILICON_RELEASE)" \ - "$(RELEASE_FOLDER)" || true - @echo "Release Apple Silicon creado: $(MACOS_APPLE_SILICON_RELEASE)" - -# Elimina las carpetas temporales - $(RMDIR) "$(RELEASE_FOLDER)" - -linux: - @echo "Compilando para Linux: $(TARGET_NAME)" - $(CXX) $(APP_SOURCES) $(INCLUDES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)" - strip -s -R .comment -R .gnu.version "$(TARGET_FILE)" --strip-unneeded - -linux_debug: - @echo "Compilando version debug para Linux: $(TARGET_NAME)_debug" - $(CXX) $(APP_SOURCES) $(INCLUDES) -DDEBUG $(CXXFLAGS_DEBUG) $(LDFLAGS) -o "$(TARGET_FILE)_debug" - -linux_release: - @echo "Creando release para Linux - Version: $(VERSION)" -# Elimina carpetas previas - $(RMDIR) "$(RELEASE_FOLDER)" - -# Crea la carpeta temporal para realizar el lanzamiento - $(MKDIR) "$(RELEASE_FOLDER)" - -# Copia ficheros - cp -R data "$(RELEASE_FOLDER)" - cp LICENSE "$(RELEASE_FOLDER)" - cp README.md "$(RELEASE_FOLDER)" - -# Compila - $(CXX) $(APP_SOURCES) $(INCLUDES) -DRELEASE_BUILD $(CXXFLAGS) $(LDFLAGS) -o "$(RELEASE_FOLDER)/$(TARGET_NAME)" - strip -s -R .comment -R .gnu.version "$(RELEASE_FOLDER)/$(TARGET_NAME)" --strip-unneeded - -# Empaqueta ficheros - $(RMFILE) "$(LINUX_RELEASE)" - tar -czvf "$(LINUX_RELEASE)" -C "$(RELEASE_FOLDER)" . - @echo "Release creado: $(LINUX_RELEASE)" - -# Elimina la carpeta temporal - $(RMDIR) "$(RELEASE_FOLDER)" - -# Regla para mostrar la versión actual -show_version: - @echo "Version actual: $(VERSION)" - -# Regla de ayuda +# ============================================================================== +# AJUDA +# ============================================================================== help: - @echo "Makefile para Shadertoy" - @echo "Comandos disponibles:" - @echo " windows - Compilar para Windows" - @echo " windows_debug - Compilar debug para Windows" - @echo " windows_release - Crear release completo para Windows" - @echo " linux - Compilar para Linux" - @echo " linux_debug - Compilar debug para Linux" - @echo " linux_release - Crear release completo para Linux" - @echo " macos - Compilar para macOS" - @echo " macos_debug - Compilar debug para macOS" - @echo " macos_release - Crear release completo para macOS" - @echo " show_version - Mostrar version actual ($(VERSION))" - @echo " help - Mostrar esta ayuda" - -.PHONY: windows windows_debug windows_release macos macos_debug macos_release linux linux_debug linux_release show_version help - -FORCE: + @echo "Makefile per a $(PROJECT)" + @echo "" + @echo " make Compilar Release (cmake)" + @echo " make debug Compilar Debug (cmake)" + @echo " make release Compilar + empaquetar per a distribució a $(DIST_DIR)/" + @echo " make clean Esborrar $(BUILDDIR)/ i $(DIST_DIR)/" + @echo "" + @echo " Versió actual: $(VERSION)" diff --git a/release/windows/shadertoy.res b/release/windows/shadertoy.res deleted file mode 100644 index bf84a67cbecb6ecb695b5ca7e30f365f43435a3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149752 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