C

Qt Quick Ultralite tvii_effects Example

cmake_minimum_required (VERSION 3.21.1)

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

qul_add_target(tvii_effects main.cpp)

qul_target_qml_sources(tvii_effects
    tvii_effects.qml
    Gauge.qml
    BaseGauge.qml
)

qul_add_qml_module(tvii_effects_speed_module
    URI Automotive
    QML_FILES
        Units.qml
        Style.qml
    OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/modules
)

target_include_directories(tvii_effects_speed_module PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)

set_source_files_properties(
    images/needle-normal.png
    images/needle-mask.png
    images/ak.png
    images/juno.png
    images/cover.jpg
    images/opacity-mask.png
    PROPERTIES
        QUL_RESOURCE_SPLIT_IMAGE_OPTIMIZATION OFF)

set_source_files_properties(
    images/needle-normal.png
    PROPERTIES
        QUL_PRIVATE_RESOURCE_OPTIMIZE_MONOCHROME_TO_ALPHA8 OFF)

qul_add_resource(tvii_effects FILES
    images/gauge-gauge-frame.png
    images/highlight-normal.png
    images/needle-normal.png
    images/needle-mask.png
    images/opacity-mask.png
    images/ak.png
    images/juno.png
    images/cover.jpg
    )

if(QUL_PLATFORM MATCHES "^tviic2d")
    target_link_libraries(tvii_effects PRIVATE Qul::PlatformTraveoIIExtras)
else()
    message(FATAL_ERROR "tvii_effects example is only supported on Infineon/Cypress Traveo II boards")
endif()

app_target_setup_os(tvii_effects)

if (QUL_BUILD_QMLPROJECT_EXAMPLES)
    qul_add_target(tvii_effects_qmlproject QML_PROJECT mcu_tvii_effects.qmlproject)

    qul_limit_string(speed_module_qmlproject "Lib_tvii_effects_qmlproject_tvii_effects_speed_module")
    target_include_directories(${speed_module_qmlproject} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
    target_sources(tvii_effects_qmlproject PRIVATE main.cpp)

    if(QUL_PLATFORM MATCHES "^tviic2d")
        target_link_libraries(tvii_effects_qmlproject PRIVATE Qul::PlatformTraveoIIExtras)
    else()
        message(FATAL_ERROR "tvii_effects_qmlproject example is only supported on Infineon/Cypress Traveo II boards")
    endif()

    app_target_setup_os(tvii_effects_qmlproject)
endif()

add_subdirectory(effects)

target_link_libraries(tvii_effects PRIVATE tvii_effects_speed_module tvii_effects_module)