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/boundary/SinglePointConstraint.cpp src/core/AnalysisState.cpp src/core/Domain.cpp src/element/Mitc4Element.cpp src/io/Hdf5ResultWriter.cpp src/load/NodalLoad.cpp src/material/LinearElasticMaterial.cpp src/property/ShellProperty.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_model_object_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") add_executable(fesa_model_object_tests tests/boundary/boundary_base_test.cpp tests/element/element_base_test.cpp tests/element/mitc4_element_model_test.cpp tests/load/load_base_test.cpp tests/material/material_base_test.cpp tests/model_object_main.cpp tests/property/property_base_test.cpp tests/property/shell_property_test.cpp ) target_link_libraries(fesa_model_object_tests PRIVATE fesa_core) add_test(NAME model-object.base COMMAND fesa_model_object_tests) set_tests_properties(model-object.base PROPERTIES LABELS "model-object;core") add_executable(fesa_io_tests tests/io/hdf5_result_writer_test.cpp ) target_link_libraries(fesa_io_tests PRIVATE fesa_core) add_test(NAME io.hdf5-result-writer COMMAND fesa_io_tests) set_tests_properties(io.hdf5-result-writer PROPERTIES LABELS "io;hdf5") add_executable(fesa_analysis_tests tests/analysis/analysis_base_test.cpp tests/analysis/analysis_test_main.cpp tests/core/analysis_state_test.cpp ) target_link_libraries(fesa_analysis_tests PRIVATE fesa_core) add_test(NAME analysis.base COMMAND fesa_analysis_tests) set_tests_properties(analysis.base PROPERTIES LABELS "analysis;core")