cmake_minimum_required(VERSION 3.20)
project(tsfile_query_backfill LANGUAGES CXX)
get_filename_component(ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../.." ABSOLUTE)
set(PR01_SOURCE "D:/code/tsfile" CACHE PATH "PR01 fixed source checkout")
set(PR01_BASE_INCLUDE "${ROOT}/work/issue-01/validation/baseline" CACHE PATH "PR01 baseline cpp/src or captured schema-header overlay")
set(PR01_BASE_LIBRARY "${ROOT}/work/issue-01/validation/baseline/tsfile.lib" CACHE FILEPATH "PR01 baseline static library")
set(PR01_FIXED_LIBRARY "${ROOT}/work/cpp-build/lib/Release/tsfile.lib" CACHE FILEPATH "PR01 fixed static library")
set(PR02_BASE_SOURCE "${ROOT}/work/issue-02/baseline-source" CACHE PATH "PR02 baseline source checkout")
set(PR02_FIXED_SOURCE "${ROOT}/work/issue-02/fix-repo" CACHE PATH "PR02 fixed source checkout")
set(PR02_BASE_LIBRARY "${ROOT}/work/issue-02/validation/msvc-baseline/lib/Release/tsfile.lib" CACHE FILEPATH "PR02 baseline static library")
set(PR02_FIXED_LIBRARY "${ROOT}/work/issue-02/validation/msvc-fixed/lib/Release/tsfile.lib" CACHE FILEPATH "PR02 fixed static library")
foreach(item 01 02)
  foreach(version baseline fixed)
    set(name query_${item}_${version})
    add_executable(${name} query_benchmark.cc)
    target_compile_features(${name} PRIVATE cxx_std_14)
    target_compile_definitions(${name} PRIVATE TSFILE_STATIC NOMINMAX ENABLE_MEM_STAT ENABLE_THREADS)
    target_compile_options(${name} PRIVATE /utf-8 /EHsc /bigobj /W0)
    if(item STREQUAL "01")
      target_compile_definitions(${name} PRIVATE PR01)
      target_include_directories(${name} PRIVATE "${PR01_SOURCE}/cpp/src")
      if(version STREQUAL "baseline")
        target_include_directories(${name} BEFORE PRIVATE "${PR01_BASE_INCLUDE}")
        set(LIB "${PR01_BASE_LIBRARY}")
      else()
        set(LIB "${PR01_FIXED_LIBRARY}")
      endif()
    else()
      if(version STREQUAL "baseline")
        set(SOURCE "${PR02_BASE_SOURCE}")
        set(LIB "${PR02_BASE_LIBRARY}")
      else()
        set(SOURCE "${PR02_FIXED_SOURCE}")
        set(LIB "${PR02_FIXED_LIBRARY}")
      endif()
      target_include_directories(${name} PRIVATE "${SOURCE}/cpp/src")
    endif()
    target_link_libraries(${name} PRIVATE "${LIB}" psapi)
  endforeach()
endforeach()
