cmake_minimum_required(VERSION 3.20)
project(brq_review LANGUAGES CXX)
get_filename_component(default_source "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
set(BRQ_SOURCE "${default_source}" CACHE PATH "BRQ component source directory")
set(BRQ_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(BRQ_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
add_subdirectory("${BRQ_SOURCE}" component)
add_executable(brq_review repro.cpp)
target_link_libraries(brq_review PRIVATE batch_read_queue)
brq_warnings(brq_review)
option(BRQ_REVIEW_VALIDATE_ADDRESS_FIX "Test an isolated addressof header override, without changing production source" OFF)
if(BRQ_REVIEW_VALIDATE_ADDRESS_FIX)
  file(READ "${BRQ_SOURCE}/src/write/writer.hpp" writer_header)
  string(REPLACE "&args, sizeof(Args)" "std::addressof(args), sizeof(Args)" writer_header "${writer_header}")
  string(REPLACE "#include <limits>" "#include <limits>\n#include <memory>" writer_header "${writer_header}")
  file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/override/batch_read_queue/src/write/writer.hpp" "${writer_header}")
  target_include_directories(brq_review BEFORE PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/override")
endif()
