open-story-teller/core/tests/CMakeLists.txt
Anthony Rabine 9db4bae9fd
Some checks are pending
Build-StoryEditor / build_linux (push) Waiting to run
Build-StoryEditor / build_win32 (push) Waiting to run
Add branch node, unit test and fixes
2025-10-17 15:24:47 +02:00

66 lines
2.1 KiB
CMake

cmake_minimum_required(VERSION 3.11)
project(core_tests LANGUAGES CXX C)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# ============================================================================
# Téléchargement et configuration de Catch2 v3
# ============================================================================
include(FetchContent)
FetchContent_Declare(
Catch2
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
GIT_TAG v3.7.1 # Dernière version stable de Catch2 v3
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(Catch2)
# Ajouter le module Catch2 pour la découverte automatique des tests
list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/extras)
# ============================================================================
# Exécutable de tests
# ============================================================================
add_executable(${PROJECT_NAME}
test_parser.cpp
test_vm.cpp
test_ast.cpp
test_print_node.cpp
test_branch.cpp
../story-manager/src/nodes/base_node.cpp
../story-manager/src/nodes/branch_node.cpp
../story-manager/src/nodes/print_node.cpp
../story-manager/src/nodes/variable_node.cpp
../story-manager/src/nodes/syscall_node.cpp
../story-manager/src/nodes/connection.cpp
../chip32/chip32_assembler.cpp
../chip32/chip32_vm.c
../chip32/chip32_binary_format.c
)
target_include_directories(${PROJECT_NAME} PRIVATE
../chip32
../story-manager/src
../story-manager/src/nodes
../story-manager/src/compiler
../story-manager/interfaces
../../shared
)
# ============================================================================
# Linkage avec Catch2
# ============================================================================
target_link_libraries(${PROJECT_NAME} PRIVATE Catch2::Catch2WithMain)
# ============================================================================
# Découverte automatique des tests (optionnel mais recommandé)
# ============================================================================
include(CTest)
include(Catch)
catch_discover_tests(${PROJECT_NAME})