cmake_minimum_required(VERSION 3.16)

project(archpack VERSION 0.1 LANGUAGES CXX)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 REQUIRED COMPONENTS Quick)

qt_standard_project_setup(REQUIRES 6.10)

qt_add_executable(apparchpack
  main.cpp
)

target_compile_definitions(apparchpack PRIVATE APP_VERSION="${PROJECT_VERSION}")

set_source_files_properties(qml/style/Theme.qml
  PROPERTIES QT_QML_SINGLETON_TYPE TRUE
)

qt_add_qml_module(apparchpack
  URI archpack
  QML_FILES
    Main.qml
    qml/style/Theme.qml
    qml/buttons/SettingsBtn.qml
    qml/buttons/UpdateBtn.qml
    qml/components/Title.qml
    qml/components/Line.qml
    qml/components/Tabs.qml
    qml/components/SettingsMenu.qml
    qml/components/pages/UpdatePg.qml
    qml/components/pages/InstallPg.qml
    qml/components/pages/DeletePg.qml
    qml/components/console/ConsoleBar.qml
    qml/components/console/ConsolePanel.qml
  SOURCES
    cpp/utils/utils.hpp
    cpp/utils/utils.cpp
    cpp/updatemanager/updatemanager.hpp
    cpp/updatemanager/updatemanager.cpp
)

target_include_directories(apparchpack PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/cpp/utils)
target_include_directories(apparchpack PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/cpp/updatemanager)

target_link_libraries(apparchpack PRIVATE Qt6::Quick)

install(TARGETS apparchpack
  BUNDLE DESTINATION .
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
