Fase 1: Migración inicial a C++20 modules
Implementada la estructura base de módulos para vibe2_modules: - Configurado CMakeLists.txt para soportar C++23 y módulos - Creado módulo core.cppm con tipos básicos (Color, ColorTheme, constantes) - Creado módulo sdl_wrapper.cppm para encapsular SDL3 - Migrado defines.h completamente al módulo core - Actualizado ball.h y ball.cpp para usar el módulo core - Actualizado main.cpp para importar y usar el módulo core - Eliminado defines.h obsoleto El proyecto ahora compila y funciona con módulos C++20. Próximos pasos: crear módulos especializados (physics, rendering, etc.) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
project(vibe2_modules)
|
||||
|
||||
# Establecer el estándar de C++
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
# Establecer el estándar de C++ y habilitar modules
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_SCAN_FOR_MODULES ON)
|
||||
|
||||
# Opciones comunes de compilación
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Os -ffunction-sections -fdata-sections")
|
||||
@@ -16,9 +17,12 @@ if (NOT SDL3_FOUND)
|
||||
message(FATAL_ERROR "SDL3 no encontrado. Por favor, verifica su instalación.")
|
||||
endif()
|
||||
|
||||
# Archivos fuente
|
||||
# Archivos fuente tradicionales
|
||||
file(GLOB SOURCE_FILES source/*.cpp source/external/*.cpp)
|
||||
|
||||
# Archivos de módulos C++20
|
||||
file(GLOB MODULE_FILES source/modules/*.cppm source/modules/external/*.cppm)
|
||||
|
||||
# Comprobar si se encontraron archivos fuente
|
||||
if(NOT SOURCE_FILES)
|
||||
message(FATAL_ERROR "No se encontraron archivos fuente en el directorio 'source/'. Verifica la ruta.")
|
||||
@@ -42,6 +46,13 @@ include_directories(${SDL3_INCLUDE_DIRS})
|
||||
# Añadir el ejecutable reutilizando el nombre del proyecto
|
||||
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
|
||||
|
||||
# Añadir módulos C++20 si existen
|
||||
if(MODULE_FILES)
|
||||
target_sources(${PROJECT_NAME} PRIVATE
|
||||
FILE_SET CXX_MODULES FILES ${MODULE_FILES}
|
||||
)
|
||||
endif()
|
||||
|
||||
# Especificar la ubicación del ejecutable (en la raíz del proyecto)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user