cmake_minimum_required(VERSION 3.5)
project(arona_core)

include(cmake/retrieve_files.cmake)

# setup rtaudio
if (WIN32)
    set(RTAUDIO_API_ASIO ON CACHE BOOL "" FORCE)
    set(RTAUDIO_API_WASAPI ON CACHE BOOL "" FORCE)
    set(RTAUDIO_API_DS OFF CACHE BOOL "" FORCE)
elseif(APPLE)
    set(RTAUDIO_API_CORE ON CACHE BOOL "" FORCE)
endif()

# setup spdlog
set(SPDLOG_BUILD_SHARED ON CACHE BOOL "" FORCE)
set(SPDLOG_BUILD_EXAMPLE OFF CACHE BOOL "" FORCE)
set(SPDLOG_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(SPDLOG_BUILD_BENCH OFF CACHE BOOL "" FORCE)
set(SPDLOG_FMT_EXTERNAL OFF CACHE BOOL "" FORCE)
set(SPDLOG_FMT_EXTERNAL_HO OFF CACHE BOOL "" FORCE)
set(SPDLOG_WCHAR_SUPPORT ON CACHE BOOL "" FORCE)
set(SPDLOG_ENABLE_PCH ON CACHE BOOL "" FORCE)
set(SPDLOG_USE_STD_FORMAT OFF CACHE BOOL "" FORCE)

if (MSVC)
    link_directories(${CMAKE_BINARY_DIR}/bin/$<CONFIG>)
endif ()

# setup taskflow
set(TF_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(TF_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)

add_subdirectory(core)
add_subdirectory(third_party/rtaudio)
add_subdirectory(third_party/spdlog)
add_subdirectory(third_party/mempool)
add_subdirectory(third_party/taskflow)
add_subdirectory(third_party/glfw)