cmake_minimum_required(VERSION 3.16)
project(l2_cpp_demo LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

add_executable(l2_cpp_demo src/main.cpp)
target_include_directories(l2_cpp_demo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)

if(WIN32)
    target_link_directories(l2_cpp_demo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/lib)
    target_link_libraries(l2_cpp_demo PRIVATE l2_tcp_client)
    add_custom_command(TARGET l2_cpp_demo POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_if_different
            ${CMAKE_CURRENT_SOURCE_DIR}/lib/l2_tcp_client.dll
            $<TARGET_FILE_DIR:l2_cpp_demo>)
else()
    find_package(Threads REQUIRED)
    target_link_directories(l2_cpp_demo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/lib)
    target_link_libraries(l2_cpp_demo PRIVATE l2_tcp_client Threads::Threads)
    set_target_properties(l2_cpp_demo PROPERTIES
        BUILD_RPATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
endif()
