# 模块：app（入口）、main_window（主窗口与时间轴等）、editor（画布）、dialogs（裁剪/关于）
set(GUI_ROOT ${CMAKE_CURRENT_SOURCE_DIR})

set(GUI_SOURCES
    ${GUI_ROOT}/app/main.cpp
    ${GUI_ROOT}/app/AppStyle.cpp
    ${GUI_ROOT}/main_window/MainWindow.cpp
    ${GUI_ROOT}/library/ResourceLibraryDock.cpp
    ${GUI_ROOT}/widgets/LongPressSwitchToolButton.cpp
    ${GUI_ROOT}/widgets/ToolOptionPopup.cpp
    ${GUI_ROOT}/widgets/CompactNumericSpinBox.cpp
    ${GUI_ROOT}/widgets/PropertyPanelControls.cpp
    ${GUI_ROOT}/main_window/RecentProjectHistory.cpp
    ${GUI_ROOT}/dialogs/AboutWindow.cpp
    ${GUI_ROOT}/dialogs/ImageCropDialog.cpp
    ${GUI_ROOT}/dialogs/FrameAnimationDialog.cpp
    ${GUI_ROOT}/dialogs/AnimationSchemeSettingsDialog.cpp
    ${GUI_ROOT}/dialogs/CancelableTaskDialog.cpp
    ${GUI_ROOT}/dialogs/EntityFinalizeDialog.cpp
    ${GUI_ROOT}/dialogs/BlackholeResolveDialog.cpp
    ${GUI_ROOT}/dialogs/InpaintPreviewDialog.cpp
    ${GUI_ROOT}/dialogs/EntityIntroPopup.cpp
    ${GUI_ROOT}/editor/EditorCanvas.cpp
    ${GUI_ROOT}/editor/EntityCutoutUtils.cpp
    ${GUI_ROOT}/params/ParamControls.cpp
    ${GUI_ROOT}/props/BackgroundPropertySection.cpp
    ${GUI_ROOT}/props/BlackholePropertySection.cpp
    ${GUI_ROOT}/props/EntityPropertySection.cpp
    ${GUI_ROOT}/props/ToolPropertySection.cpp
    ${GUI_ROOT}/props/CameraPropertySection.cpp
    ${GUI_ROOT}/props/HotspotPropertySection.cpp
    ${GUI_ROOT}/timeline/TimelineWidget.cpp
)

set(GUI_HEADERS
    ${GUI_ROOT}/main_window/MainWindow.h
    ${GUI_ROOT}/app/AppStyle.h
    ${GUI_ROOT}/library/ResourceLibraryDock.h
    ${GUI_ROOT}/widgets/LongPressSwitchToolButton.h
    ${GUI_ROOT}/widgets/ToolOptionPopup.h
    ${GUI_ROOT}/widgets/PropertyPanelControls.h
    ${GUI_ROOT}/widgets/CompactNumericSpinBox.h
    ${GUI_ROOT}/main_window/RecentProjectHistory.h
    ${GUI_ROOT}/dialogs/AboutWindow.h
    ${GUI_ROOT}/dialogs/ImageCropDialog.h
    ${GUI_ROOT}/dialogs/FrameAnimationDialog.h
    ${GUI_ROOT}/dialogs/AnimationSchemeSettingsDialog.h
    ${GUI_ROOT}/dialogs/CancelableTaskDialog.h
    ${GUI_ROOT}/dialogs/EntityFinalizeDialog.h
    ${GUI_ROOT}/dialogs/BlackholeResolveDialog.h
    ${GUI_ROOT}/dialogs/InpaintPreviewDialog.h
    ${GUI_ROOT}/dialogs/EntityIntroPopup.h
    ${GUI_ROOT}/editor/EditorCanvas.h
    ${GUI_ROOT}/editor/EntityCutoutUtils.h
    ${GUI_ROOT}/params/ParamControls.h
    ${GUI_ROOT}/props/BackgroundPropertySection.h
    ${GUI_ROOT}/props/BlackholePropertySection.h
    ${GUI_ROOT}/props/EntityPropertySection.h
    ${GUI_ROOT}/props/ToolPropertySection.h
    ${GUI_ROOT}/props/CameraPropertySection.h
    ${GUI_ROOT}/props/HotspotPropertySection.h
    ${GUI_ROOT}/props/PropertySectionWidget.h
    ${GUI_ROOT}/timeline/TimelineWidget.h
)

if(QT_PACKAGE STREQUAL "Qt6")
    qt_add_executable(LandscapeInteractiveToolApp
        ${GUI_SOURCES}
        ${GUI_HEADERS}
    )
else()
    add_executable(LandscapeInteractiveToolApp
        ${GUI_SOURCES}
        ${GUI_HEADERS}
    )
endif()

target_include_directories(LandscapeInteractiveToolApp
    PRIVATE
        ${SRC_ROOT}
        ${GUI_ROOT}
)

target_link_libraries(LandscapeInteractiveToolApp
    PRIVATE
        ${QT_PACKAGE}::Core
        ${QT_PACKAGE}::Gui
        ${QT_PACKAGE}::Widgets
        ${QT_PACKAGE}::Concurrent
        core
)

set_target_properties(LandscapeInteractiveToolApp PROPERTIES
    OUTPUT_NAME "landscape_tool"
)
