cmake_minimum_required(VERSION 3.20)

if(NOT TARGET Qt6::Quick)
    project(NebulaUI LANGUAGES CXX)
    find_package(Qt6 6.4 REQUIRED COMPONENTS Quick)
    qt_standard_project_setup(REQUIRES 6.4)
endif()

qt_add_library(NebulaUI STATIC)

set(NEBULA_UI_QML_DIR "${CMAKE_CURRENT_SOURCE_DIR}/qml/Nebula/UI")

set(NEBULA_UI_QML_FILES
    Theme.qml
    NebulaButton.qml
    NebulaCard.qml
    NebulaIconButton.qml
    NebulaTextField.qml
    FocusFrame.qml
    NebulaIcon.qml
)

set(NEBULA_UI_QML_PATHS)
foreach(qml_file IN LISTS NEBULA_UI_QML_FILES)
    set(qml_path "${NEBULA_UI_QML_DIR}/${qml_file}")
    set_source_files_properties("${qml_path}" PROPERTIES
        QT_RESOURCE_ALIAS "${qml_file}"
    )
    list(APPEND NEBULA_UI_QML_PATHS "${qml_path}")
endforeach()

set_source_files_properties("${NEBULA_UI_QML_DIR}/Theme.qml" PROPERTIES
    QT_QML_SINGLETON_TYPE TRUE
)

qt_add_qml_module(NebulaUI
    URI Nebula.UI
    VERSION 1.0
    RESOURCE_PREFIX /qt/qml
    QML_FILES ${NEBULA_UI_QML_PATHS}
)
