add_executable(ChefFun_test
  EitherTest.cc
  OptionTest.cc
)

include(FetchContent)
FetchContent_Declare(
    googletest
    URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
)
# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)

target_link_libraries(ChefFun_test
    PRIVATE
      chef_fun
      GTest::gtest
      GTest::gtest_main
)


set( MY_CXX_FLAGS "" )
string(APPEND MY_CXX_FLAGS "-ggdb;" )
string(APPEND MY_CXX_FLAGS "-fsanitize=address;")
string(APPEND MY_CXX_FLAGS "-fsanitize=leak;")
string(APPEND MY_CXX_FLAGS "-fsanitize=undefined;")
string(APPEND MY_CXX_FLAGS "-fno-omit-frame-pointer;")
string(APPEND MY_CXX_FLAGS "-static-libstdc++")

set_target_properties(ChefFun_test
  PROPERTIES
    COMPILE_OPTIONS "${MY_CXX_FLAGS}"
)

set_target_properties(ChefFun_test
  PROPERTIES
    LINK_FLAGS
    "-fsanitize=address -fsanitize=undefined"
)

add_test( NAME ChefFun_test COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/EmptyCarEnsurer_test)

add_dependencies(ChefFun_Tests ChefFun_test)