add_test(
    NAME VersionCommand
    COMMAND "${CMAKE_BINARY_DIR}/$<CONFIG>/fesa.exe" --version
)

set_tests_properties(
    VersionCommand
    PROPERTIES
        PASS_REGULAR_EXPRESSION "[0-9]+\\.[0-9]+\\.[0-9]+"
)

add_executable(fesa_dependency_smoke_test
    unit/dependencies/dependency_smoke_test.cpp
)

target_compile_features(fesa_dependency_smoke_test PRIVATE cxx_std_20)
target_compile_options(fesa_dependency_smoke_test PRIVATE /W4 /permissive- /EHsc)

target_link_libraries(fesa_dependency_smoke_test
    PRIVATE
        MKL::MKL
        TBB::tbb
        HDF5::HDF5
        GTest::gtest_main
        GTest::gtest
        GTest::gmock
)

add_test(
    NAME DependencySmoke
    COMMAND "$<TARGET_FILE:fesa_dependency_smoke_test>"
)

set_property(
    TEST DependencySmoke
    PROPERTY ENVIRONMENT_MODIFICATION
        ${FESA_DEPENDENCY_RUNTIME_MODIFICATIONS}
)

add_executable(fesa_core_value_tests
    unit/core/diagnostic_test.cpp
    unit/core/entity_id_test.cpp
    unit/core/status_test.cpp
    unit/core/vec3_test.cpp
)

target_compile_features(fesa_core_value_tests PRIVATE cxx_std_20)
target_compile_options(fesa_core_value_tests PRIVATE /W4 /permissive- /EHsc)

target_link_libraries(fesa_core_value_tests
    PRIVATE
        fesa_core
        GTest::gtest_main
)

add_test(
    NAME CoreValueTypes
    COMMAND "$<TARGET_FILE:fesa_core_value_tests>"
)
