C

Qt Quick Ultralite Watch Demo

cmake_minimum_required (VERSION 3.21.1)
project(watch VERSION 0.0.1 LANGUAGES C CXX ASM)

if (NOT TARGET Qul::Core)
    find_package(Qul)
endif()

if(QUL_PLATFORM MATCHES "^ek-ra6m3g")
    string(TOUPPER ${CMAKE_BUILD_TYPE} build_type)
    if(build_type STREQUAL "RELEASE" OR build_type STREQUAL "DEBUG")
        message(WARNING "For Release or Debug builds, watch demo binary may not fit in internal flash of EK-RA6M3G board. Sections QulResourceDataExtFlash and QulFontResourceDataExtFlash can be used to move image or font data into the external flash memory.")
    endif()
endif()

if(QUL_PLATFORM STREQUAL "qt")
    qul_add_target(watch QML_PROJECT qmlproject/mcu_watch.qmlproject GENERATE_ENTRYPOINT SELECTORS desktop normal)
    qul_add_target(watch_benchmark QML_PROJECT qmlproject/mcu_watch.qmlproject GENERATE_ENTRYPOINT SELECTORS desktop benchmark)
elseif(QUL_PLATFORM MATCHES "^stm32h750b-discovery")
    qul_add_target(watch QML_PROJECT qmlproject/mcu_watch-stm32h750b-discovery.qmlproject GENERATE_ENTRYPOINT SELECTORS normal)
    qul_add_target(watch_benchmark QML_PROJECT qmlproject/mcu_watch-stm32h750b-discovery.qmlproject GENERATE_ENTRYPOINT SELECTORS benchmark)
else()
    qul_add_target(watch QML_PROJECT qmlproject/mcu_watch.qmlproject GENERATE_ENTRYPOINT SELECTORS normal)
    qul_add_target(watch_benchmark QML_PROJECT qmlproject/mcu_watch.qmlproject GENERATE_ENTRYPOINT SELECTORS benchmark)
endif()

target_sources(watch_benchmark PRIVATE mode/+benchmark/simulation/flickControl.cpp)

foreach(target watch watch_benchmark)
    target_include_directories(${target} PRIVATE inc)

    target_sources(${target} PRIVATE src/HealthModel.cpp)

    qul_get_module_target(watch_module_target ${target} qmlproject/watch_model.qmlproject)
    target_include_directories(${watch_module_target} PUBLIC inc)
    target_sources(${watch_module_target} PRIVATE src/WatchModel.cpp)

    app_target_setup_os(${target})
endforeach()