C

Qt Quick Ultralite loader Example

cmake_minimum_required (VERSION 3.21.1)

project(loader VERSION 0.0.1 LANGUAGES C CXX ASM)
if (NOT TARGET Qul::Core)
    find_package(Qul)
endif()

qul_add_qml_module(SettingsDataModule
    URI SettingsData
    QML_FILES
        settings/SettingsData.qml
)

qul_add_qml_module(GameStateModule
    URI GameState
    QML_FILES
        memory_game/GameState.qml
    HEADERS
        memory_game/ColorsQueue.h
    SOURCES
        memory_game/ColorsQueue.cpp
)

qul_add_target(loader)
qul_target_qml_sources(loader
    loader.qml PageButton.qml Logo.qml
    settings/ColorSelector.qml
    settings/DifficultySelector.qml
    settings/Settings.qml
    memory_game/ColorButtons.qml
    memory_game/GameOver.qml
    memory_game/GameMain.qml
    memory_game/GameWindow.qml
    memory_game/MemoryGame.qml
    memory_game/StatsOverlay.qml
)
app_target_setup_os(loader)
app_target_default_entrypoint(loader loader)
target_link_libraries(loader PRIVATE SettingsDataModule GameStateModule)

qul_add_resource(loader
    FILES
        images/qt_logo.png
        images/previous_page.png
        images/next_page.png
)

if(NOT CMAKE_CROSSCOMPILING AND NOT WIN32)
    add_custom_command(TARGET loader
        COMMAND strip loader -o loader.stripped
        DEPENDS loader)
endif()

if (QUL_BUILD_QMLPROJECT_EXAMPLES)
    qul_add_target(loader_qmlproject QML_PROJECT mcu_loader.qmlproject memory_game/ColorsQueue.cpp)
    app_target_setup_os(loader_qmlproject)
    app_target_default_entrypoint(loader_qmlproject loader)

    if(NOT CMAKE_CROSSCOMPILING AND NOT WIN32)
        add_custom_command(TARGET loader_qmlproject
            COMMAND strip loader_qmlproject -o loader.stripped
            DEPENDS loader_qmlproject)
    endif()
endif()