cmake_minimum_required(VERSION 3.14)
project(dsmp_api_wrapper VERSION 1.0.4 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if(MSVC)
    set(CMAKE_CXX_FLAGS_RELEASE "/O2 /GL /MT")
    set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded")
else()
    set(CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -flto")
endif()

find_package(pybind11 CONFIG REQUIRED)

pybind11_add_module(dsmp_api_wrapper bindings.cpp)

target_include_directories(dsmp_api_wrapper PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${NLOHMANN_INCLUDE}
)

if(WIN32)
    target_link_libraries(dsmp_api_wrapper PRIVATE winhttp)
else()
    find_package(CURL REQUIRED)
    target_include_directories(dsmp_api_wrapper PRIVATE ${CURL_INCLUDE_DIRS})
    target_link_libraries(dsmp_api_wrapper PRIVATE ${CURL_LIBRARIES})
endif()