cmake_minimum_required(VERSION 3.31)
project(libAIConnect VERSION 1.0.5 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_INSTALL_RPATH "$ORIGIN")
set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)

if(WIN32)
    include_directories(
        libcurl/include
        libJSONHandle/include
    )

    link_directories(
        libcurl/lib
        libJSONHandle/lib
    )

    add_library(AIConnect SHARED
        specific_os.cpp
        config.cpp
        net.cpp
    )

    target_link_libraries(AIConnect PRIVATE
        libcurl-x64.dll
        libJSONHandle.dll
    )
else()
    find_package(CURL REQUIRED)

    include_directories(
        libJSONHandle/include
    )

    link_directories(
        libJSONHandle/lib
    )

    add_library(AIConnect SHARED
        config.cpp
        net.cpp
    )

    target_link_libraries(AIConnect PRIVATE
        CURL::libcurl
        libJSONHandle.so
    )
endif()

add_executable(aiConnect
    main.cpp
    options.cpp
    help.cpp
)

target_link_libraries(aiConnect PRIVATE
    AIConnect
)