Files
aee/CMakeLists.txt

69 lines
1.8 KiB
CMake

# 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
# Core - Motor "Jail"
source/core/jail_audio.cpp
source/core/jdraw8.cpp
source/core/jfile.cpp
source/core/jgame.cpp
source/core/jinput.cpp
source/core/jshader.cpp
# Game
source/game/options.cpp
source/game/bola.cpp
source/game/engendro.cpp
source/game/info.cpp
source/game/mapa.cpp
source/game/marcador.cpp
source/game/modulegame.cpp
source/game/modulesequence.cpp
source/game/momia.cpp
source/game/prota.cpp
source/game/sprite.cpp
# Main
source/main.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 $<$<CONFIG:RELEASE>:-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})