Compare commits

..

2 Commits

3 changed files with 120 additions and 28 deletions

51
.vscode/c_cpp_properties.json vendored Normal file
View File

@@ -0,0 +1,51 @@
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/source/**",
"${workspaceFolder}/build"
],
"defines": [
"_DEBUG",
"_NO_AUDIO",
"MACOS_BUILD"
],
"cStandard": "c17",
"cppStandard": "c++20",
"intelliSenseMode": "macos-clang-arm64"
},
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/source/**",
"${workspaceFolder}/build"
],
"defines": [
"_DEBUG",
"_NO_AUDIO",
"LINUX_BUILD"
],
"cStandard": "c17",
"cppStandard": "c++20",
"intelliSenseMode": "linux-gcc-x64"
},
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/source/**",
"${workspaceFolder}/build"
],
"defines": [
"_DEBUG",
"_NO_AUDIO",
"WINDOWS_BUILD",
"_WIN32"
],
"cStandard": "c17",
"cppStandard": "c++20",
"intelliSenseMode": "windows-msvc-x64"
}
],
"version": 4
}

View File

@@ -190,12 +190,28 @@ _macos_release:
@$(MAKE) pack @$(MAKE) pack
@echo "Creando release para macOS - Version: $(VERSION)" @echo "Creando release para macOS - Version: $(VERSION)"
# Verificar e instalar create-dmg si es necesario # Verifica dependencias necesarias (create-dmg). Si falta, intenta instalarla
@which create-dmg > /dev/null || (echo "Instalando create-dmg..." && brew install create-dmg) # con brew; si brew tampoco está, indica el comando exacto al usuario.
@command -v create-dmg >/dev/null 2>&1 || { \
# Compila la versión para procesadores Intel con cmake echo ""; \
@cmake -S . -B build/intel -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DMACOS_BUNDLE=ON echo "============================================"; \
@cmake --build build/intel 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 # Elimina datos de compilaciones anteriores
$(RMDIR) "$(RELEASE_FOLDER)" $(RMDIR) "$(RELEASE_FOLDER)"
@@ -219,30 +235,55 @@ _macos_release:
cp LICENSE "$(RELEASE_FOLDER)" cp LICENSE "$(RELEASE_FOLDER)"
cp README.md "$(RELEASE_FOLDER)" cp README.md "$(RELEASE_FOLDER)"
# Copia el ejecutable Intel al bundle # Actualiza versión en Info.plist
cp "$(TARGET_FILE)" "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)" @echo "Actualizando Info.plist con versión $(VERSION)..."
@RAW_VERSION=$$(echo "$(VERSION)" | sed 's/^v//'); \
sed -i '' '/<key>CFBundleShortVersionString<\/key>/{n;s|<string>.*</string>|<string>'"$$RAW_VERSION"'</string>|;}' "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Info.plist"; \
sed -i '' '/<key>CFBundleVersion<\/key>/{n;s|<string>.*</string>|<string>'"$$RAW_VERSION"'</string>|;}' "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Info.plist"
# Firma la aplicación # Compila y empaqueta la versión Intel (best-effort: si falla, se omite el
codesign --deep --force --sign - --timestamp=none "$(RELEASE_FOLDER)/$(APP_NAME).app" # DMG Intel y continúa con la build de Apple Silicon).
@echo ""
# Empaqueta el .dmg de la versión Intel con create-dmg @echo "============================================"
@echo "Creando DMG Intel con iconos de 96x96..." @echo " Compilando version Intel (x86_64)"
create-dmg \ @echo "============================================"
--volname "$(APP_NAME)" \ @if cmake -S . -B build/intel -DCMAKE_BUILD_TYPE=Release \
--window-pos 200 120 \ -DCMAKE_OSX_ARCHITECTURES=x86_64 \
--window-size 720 300 \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \
--icon-size 96 \ -DMACOS_BUNDLE=ON \
--text-size 12 \ && cmake --build build/intel; then \
--icon "$(APP_NAME).app" 278 102 \ cp "$(TARGET_FILE)" "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)"; \
--icon "LICENSE" 441 102 \ codesign --deep --force --sign - --timestamp=none "$(RELEASE_FOLDER)/$(APP_NAME).app"; \
--icon "README.md" 604 102 \ echo "Creando DMG Intel con iconos de 96x96..."; \
--app-drop-link 115 102 \ create-dmg \
--hide-extension "$(APP_NAME).app" \ --volname "$(APP_NAME)" \
"$(MACOS_INTEL_RELEASE)" \ --window-pos 200 120 \
"$(RELEASE_FOLDER)" || true --window-size 720 300 \
@echo "Release Intel creado: $(MACOS_INTEL_RELEASE)" --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_INTEL_RELEASE)" \
"$(RELEASE_FOLDER)" || true; \
echo "Release Intel creado: $(MACOS_INTEL_RELEASE)"; \
else \
echo ""; \
echo "============================================"; \
echo " WARNING: la build Intel ha fallado."; \
echo " Se omite el DMG Intel y se continúa con"; \
echo " la build de Apple Silicon."; \
echo "============================================"; \
echo ""; \
fi
# Compila la versión para procesadores Apple Silicon con cmake # Compila la versión para procesadores Apple Silicon con cmake
@echo ""
@echo "============================================"
@echo " Compilando version Apple Silicon (arm64)"
@echo "============================================"
@cmake -S . -B build/arm -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -DMACOS_BUNDLE=ON @cmake -S . -B build/arm -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -DMACOS_BUNDLE=ON
@cmake --build build/arm @cmake --build build/arm
cp "$(TARGET_FILE)" "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)" cp "$(TARGET_FILE)" "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)"

View File

@@ -1,5 +1,5 @@
#pragma once #pragma once
namespace Texts { namespace Texts {
constexpr const char* VERSION = "2026-04-14"; // Versión del juego (también usada por el Makefile) constexpr const char* VERSION = "2026.04.14"; // Versión del juego (también usada por el Makefile)
} // namespace Texts } // namespace Texts