cmake_minimum_required(VERSION 3.16)

project(AgentKitDemoCode LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)

find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Network Svg)

add_executable(AgentKitDemo main.cpp)

target_compile_definitions(AgentKitDemo PRIVATE WIN32_LEAN_AND_MEAN)
target_include_directories(AgentKitDemo PRIVATE
    ${CMAKE_CURRENT_LIST_DIR}/../include
    ${CMAKE_CURRENT_LIST_DIR}/../include/QtAgentKit
)
target_link_libraries(AgentKitDemo PRIVATE
    ${CMAKE_CURRENT_LIST_DIR}/../lib/UIGearsAgentKitLib.lib
    Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Svg
)

if(MSVC)
    target_compile_options(AgentKitDemo PRIVATE /W3 /MP /utf-8)
endif()

set_target_properties(AgentKitDemo PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

file(GLOB TRIAL_RUNTIME_DLLS ${CMAKE_CURRENT_LIST_DIR}/../bin/*.dll)
if(TRIAL_RUNTIME_DLLS)
    add_custom_command(TARGET AgentKitDemo POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_if_different ${TRIAL_RUNTIME_DLLS} $<TARGET_FILE_DIR:AgentKitDemo>
    )
endif()

foreach(runtime_dir platforms imageformats iconengines styles bearer)
    if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/../bin/${runtime_dir})
        add_custom_command(TARGET AgentKitDemo POST_BUILD
            COMMAND ${CMAKE_COMMAND} -E copy_directory
                ${CMAKE_CURRENT_LIST_DIR}/../bin/${runtime_dir}
                $<TARGET_FILE_DIR:AgentKitDemo>/${runtime_dir}
        )
    endif()
endforeach()
