cmake_minimum_required(VERSION 3.20)

if(NOT TARGET Qt6::Qml)
    project(NebulaApplications LANGUAGES CXX)
    find_package(Qt6 6.4 REQUIRED COMPONENTS Core Gui Qml)
    qt_standard_project_setup(REQUIRES 6.4)
endif()

qt_add_library(NebulaApplications STATIC)

qt_add_qml_module(NebulaApplications
    URI Nebula.Applications
    VERSION 1.0
    RESOURCE_PREFIX /qt/qml
    SOURCES
        DesktopEntry.hpp
        DesktopEntry.cpp
        ApplicationModel.hpp
        ApplicationModel.cpp
        ApplicationFilterModel.hpp
        ApplicationFilterModel.cpp
        ApplicationService.hpp
        ApplicationService.cpp
)

target_include_directories(NebulaApplications
    PUBLIC
        "${CMAKE_CURRENT_SOURCE_DIR}"
)

target_link_libraries(NebulaApplications
    PUBLIC
        Qt6::Core
        Qt6::Gui
        Qt6::Qml
)

set_target_properties(NebulaApplications PROPERTIES
    AUTOMOC ON
)

if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
    target_compile_options(NebulaApplications PRIVATE -Wall -Wextra)
endif()
