cmake_minimum_required(VERSION 3.20)
project(tsfile_rounding_candidate LANGUAGES CXX)
get_filename_component(ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../.." ABSOLUTE)
get_filename_component(WORKSPACE "${ROOT}/../.." ABSOLUTE)
add_executable(query_screen "${ROOT}/query_benchmark.cc")
add_executable(round_oracle "${WORKSPACE}/work/issue-02/validation/round_oracle.cc")
add_executable(precision_screen "${WORKSPACE}/work/issue-02/validation/driver.cc")
add_executable(benchmark_screen "${WORKSPACE}/work/issue-02/validation/benchmark_driver.cc")
foreach(target query_screen round_oracle precision_screen benchmark_screen)
    target_compile_features(${target} PRIVATE cxx_std_14)
    target_compile_definitions(${target} PRIVATE TSFILE_STATIC NOMINMAX ENABLE_MEM_STAT ENABLE_THREADS)
    target_compile_options(${target} PRIVATE /utf-8 /EHsc /bigobj /W0)
    target_include_directories(${target} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../source/cpp/src")
    target_link_libraries(${target} PRIVATE "${TSFILE_SCREEN_LIBRARY}" psapi)
endforeach()
target_compile_definitions(precision_screen PRIVATE FIXED_PRECISION_PROPS)
target_link_options(query_screen PRIVATE "/MAP:${CMAKE_CURRENT_BINARY_DIR}/query_screen.map")
