feat(entities): andamiatge del sistema d'entitats (classes, factory, bus, YAML, placeholders, smoke tests)
This commit is contained in:
1 parent
984cc820c0
commit
96b71b0f65
48 files changed
+1957
No files matched your search
@@ -30,6 +30,25 @@ endif()
|
||||
|
||||
configure_file(${CMAKE_SOURCE_DIR}/source/version.h.in ${CMAKE_BINARY_DIR}/version.h @ONLY)
|
||||
|
||||
# Sources comuns del sistema d'entitats: s'afegeixen tant a l'executable
|
||||
# principal com al smoke test. Mantenir-los en variable separada evita
|
||||
# duplicació entre els dos targets.
|
||||
set(ENTITY_SOURCES
|
||||
source/game/entities/entity.cpp
|
||||
source/game/entities/animation_component.cpp
|
||||
source/game/entities/event_bus.cpp
|
||||
source/game/entities/entity_factory.cpp
|
||||
source/game/entities/entity_loader.cpp
|
||||
source/game/entities/entity_manager.cpp
|
||||
source/game/entities/concrete/torch.cpp
|
||||
source/game/entities/concrete/sarcophagus.cpp
|
||||
source/game/entities/concrete/door.cpp
|
||||
source/game/entities/concrete/mummy.cpp
|
||||
source/game/entities/concrete/rolling_rock.cpp
|
||||
source/game/entities/concrete/wall_trap.cpp
|
||||
source/game/entities/concrete/floor_trap.cpp
|
||||
)
|
||||
|
||||
set(APP_SOURCES
|
||||
source/main.cpp
|
||||
source/core/system/director.cpp
|
||||
@@ -62,6 +81,7 @@ set(APP_SOURCES
|
||||
source/game/entities/player.cpp
|
||||
source/game/map/map.cpp
|
||||
source/game/map/tilemap.cpp
|
||||
${ENTITY_SOURCES}
|
||||
)
|
||||
|
||||
find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3)
|
||||
@@ -222,3 +242,25 @@ if(CPPCHECK_EXE)
|
||||
else()
|
||||
message(STATUS "cppcheck no encontrado - target 'cppcheck' no disponible")
|
||||
endif()
|
||||
|
||||
# --- SMOKE TESTS ---
|
||||
# Executable stand-alone que cobreix el sistema d'entitats. No obri finestra
|
||||
# ni GPU: pot córrer en qualsevol entorn. `ctest --output-on-failure` el
|
||||
# dispara des de `build/`.
|
||||
option(BUILD_TESTS "Build smoke tests" ON)
|
||||
if(BUILD_TESTS)
|
||||
add_executable(test_entities_smoke
|
||||
tests/test_entities_smoke.cpp
|
||||
${ENTITY_SOURCES}
|
||||
)
|
||||
target_include_directories(test_entities_smoke PRIVATE
|
||||
"${CMAKE_SOURCE_DIR}/source"
|
||||
"${CMAKE_BINARY_DIR}"
|
||||
)
|
||||
target_link_libraries(test_entities_smoke PRIVATE SDL3::SDL3)
|
||||
target_compile_options(test_entities_smoke PRIVATE -Wall -Wextra -Wpedantic)
|
||||
enable_testing()
|
||||
add_test(NAME entities_smoke
|
||||
COMMAND test_entities_smoke
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||
endif()
|
||||
Reference in new issue
Block a user