# CMakeLists.txt cmake_minimum_required(VERSION 3.10) project(aee VERSION 1.00) # Estándar de C++ set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) # Exportar comandos de compilación para herramientas de análisis set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # --- LISTA EXPLÍCITA DE FUENTES --- set(APP_SOURCES source/main.cpp source/bola.cpp source/engendro.cpp source/info.cpp source/jail_audio.cpp source/jdraw8.cpp source/jfile.cpp source/jgame.cpp source/jinput.cpp source/jshader.cpp source/mapa.cpp source/marcador.cpp source/modulegame.cpp source/modulesequence.cpp source/momia.cpp source/prota.cpp source/sprite.cpp ) # Configuración de SDL3 find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3) message(STATUS "SDL3 encontrado: ${SDL3_INCLUDE_DIRS}") # --- EJECUTABLE --- add_executable(${PROJECT_NAME} ${APP_SOURCES}) # --- DIRECTORIOS DE INCLUSIÓN --- target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_SOURCE_DIR}/source" ) # Enlazar SDL3 target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3) # --- FLAGS DE COMPILACIÓN --- target_compile_options(${PROJECT_NAME} PRIVATE -Wall) target_compile_options(${PROJECT_NAME} PRIVATE $<$:-Os -ffunction-sections -fdata-sections>) # --- CONFIGURACIÓN POR PLATAFORMA --- if(WIN32) target_link_libraries(${PROJECT_NAME} PRIVATE mingw32 opengl32) elseif(UNIX AND NOT APPLE) find_package(OpenGL REQUIRED) target_link_libraries(${PROJECT_NAME} PRIVATE OpenGL::GL) endif() # Ejecutable en la raíz del proyecto set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})