cmake_minimum_required(VERSION 3.20)
if(CMAKE_HOST_APPLE AND NOT CMAKE_OSX_DEPLOYMENT_TARGET)
  set(CMAKE_OSX_DEPLOYMENT_TARGET "14.4" CACHE STRING "Minimum macOS version")
endif()
project(TwoBufQueueConsumer LANGUAGES CXX)
set(BRQ_INTEGRATION_MODE "package" CACHE STRING "package, add_subdirectory, or fetchcontent")
if(BRQ_INTEGRATION_MODE STREQUAL "package")
  find_package(TwoBufQueue 0.1 CONFIG REQUIRED)
elseif(BRQ_INTEGRATION_MODE STREQUAL "add_subdirectory" OR
       BRQ_INTEGRATION_MODE STREQUAL "fetchcontent")
  if(NOT BRQ_SOURCE_DIR)
    message(FATAL_ERROR "Set BRQ_SOURCE_DIR to the library source root")
  endif()
  get_filename_component(BRQ_SOURCE_DIR "${BRQ_SOURCE_DIR}" ABSOLUTE
    BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
  if(BRQ_INTEGRATION_MODE STREQUAL "add_subdirectory")
    add_subdirectory("${BRQ_SOURCE_DIR}" dependency)
  else()
    include(FetchContent)
    FetchContent_Declare(TwoBufQueue SOURCE_DIR "${BRQ_SOURCE_DIR}")
    FetchContent_MakeAvailable(TwoBufQueue)
  endif()
  if(BRQ_BUILD_TESTS OR BRQ_BUILD_EXAMPLES)
    message(FATAL_ERROR "Embedded library unexpectedly enabled tests or examples")
  endif()
else()
  message(FATAL_ERROR "Unknown BRQ_INTEGRATION_MODE")
endif()
add_executable(consumer main.cpp)
target_link_libraries(consumer PRIVATE TwoBufQueue::TwoBufQueue)
enable_testing()
add_test(NAME consumer_records COMMAND consumer)
