cmake_minimum_required(VERSION 3.16)

project(StyleKitDemoCode 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 Svg)

add_executable(StyleKitDemo main.cpp)
target_link_libraries(StyleKitDemo PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Svg)

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

set_target_properties(StyleKitDemo 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 StyleKitDemo POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_if_different ${TRIAL_RUNTIME_DLLS} $<TARGET_FILE_DIR:StyleKitDemo>
    )
endif()

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

if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/../examples)
    add_custom_command(TARGET StyleKitDemo POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_directory
            ${CMAKE_CURRENT_LIST_DIR}/../examples
            $<TARGET_FILE_DIR:StyleKitDemo>/examples
    )
endif()
