cmake_minimum_required(VERSION 3.20)

project(FESA LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

add_library(fesa_core STATIC
    src/core/Domain.cpp
)
target_include_directories(fesa_core PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}/include
)

enable_testing()

add_executable(fesa_domain_tests
    tests/core/boundary_condition_test.cpp
    tests/core/domain_bootstrap_test.cpp
    tests/core/domain_storage_test.cpp
    tests/core/element_definition_test.cpp
    tests/core/load_definition_test.cpp
    tests/core/material_definition_test.cpp
    tests/core/model_types_test.cpp
    tests/core/node_test.cpp
    tests/core/property_definition_test.cpp
    tests/core/step_definition_test.cpp
)
target_link_libraries(fesa_domain_tests PRIVATE fesa_core)

add_test(NAME domain.bootstrap COMMAND fesa_domain_tests)
set_tests_properties(domain.bootstrap PROPERTIES LABELS "domain;core")
