C

Qt Safe Monitor: Qt Quick Ultralite Example on Bare-Metal Traveo II

cmake_minimum_required(VERSION 3.21.1)

project(SafeUI VERSION 0.1 LANGUAGES C CXX ASM)

find_package(Qul REQUIRED)

# Build the application
qul_add_target(SafeUI QML_PROJECT SafeUI.qmlproject)

if(NOT DEFINED QSR_SOURCE_DIR)
    message(FATAL_ERROR "QSR_SOURCE_DIR must be defined. Use -DQSR_SOURCE_DIR=<path>")
endif()

# Link Qul libraries
target_link_libraries(SafeUI PRIVATE Qul::SafeRenderer)

# Platform-specific extras
if(QUL_PLATFORM MATCHES "^tviic2d")
    target_link_libraries(SafeUI PRIVATE Qul::PlatformTraveoIIExtras)
else()
    target_compile_definitions(SafeUI PRIVATE DESKTOP_BUILD)
endif()

# Include paths
target_include_directories(SafeUI PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/src
    ${MONITOR_BUILD_DIR}/include
)

# Link QulMonitor libraries
target_link_libraries(SafeUI PRIVATE
    ${MONITOR_BUILD_DIR}/lib/libSignatureDriver.a
    ${MONITOR_BUILD_DIR}/lib/libSafeMonitor.a
    ${MONITOR_BUILD_DIR}/lib/libMonitorAdaptation.a
    ${MONITOR_BUILD_DIR}/lib/libOutputVerifier.a
    ${MONITOR_BUILD_DIR}/lib/libqsrmonitordata.a
    ${MONITOR_BUILD_DIR}/lib/libSafeRenderer.a
)

# Application source files
target_sources(SafeUI PRIVATE
    src/main.cpp
    src/DemoStatus.cpp
    src/simulator.cpp
)

# OS-specific setup
app_target_setup_os(SafeUI)