C
Telltales: Rendering Safety-Critical UI
cmake_minimum_required(VERSION 3.16)
project(telltales LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC OFF)
set(CMAKE_AUTORCC OFF)
if(NOT DEFINED INSTALL_EXAMPLESDIR)
set(INSTALL_EXAMPLESDIR "examples")
endif()
find_package(Qt6 REQUIRED COMPONENTS Core Quick SafeRenderer SafeRendererTools SafePlatformAdaptation)
set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}")
set (safeqmls
${CMAKE_CURRENT_LIST_DIR}/../qtcluster/qml/dash_hybrid/DashboardForm.ui.qml
${CMAKE_CURRENT_LIST_DIR}/../qtcluster/qml/dash_sports/DashboardSportForm.ui.qml
)
# Resource files are passed to qtsafelayouttool
set(resource_files
${CMAKE_CURRENT_LIST_DIR}/../qtcluster/hybridimages.qrc
${CMAKE_CURRENT_LIST_DIR}/../qtcluster/hybridqml.qrc
${CMAKE_CURRENT_LIST_DIR}/../qtcluster/images.qrc
${CMAKE_CURRENT_LIST_DIR}/../qtcluster/iso-icons.qrc
${CMAKE_CURRENT_LIST_DIR}/../qtcluster/qtcluster.qrc
${CMAKE_CURRENT_LIST_DIR}/../qtcluster/sportsimages.qrc
${CMAKE_CURRENT_LIST_DIR}/../qtcluster/sportsqml.qrc
)
set(sources
main.cpp
)
#resource.bin is loaded by qtsafelayouttool to find the resource data asset.
qt6_add_binary_resources(resources_telltales ${resource_files} DESTINATION resource.bin)
qsr_add_safelayout(generatelayout_telltales SAFE_QMLS ${safeqmls}
OUTPUT_PATH ${CMAKE_CURRENT_LIST_DIR}/layoutData
SAFE_LAYOUT_FONTS "${CMAKE_CURRENT_LIST_DIR}/../qtcluster/fonts"
SAFE_RESOURCE "${CMAKE_CURRENT_LIST_DIR}/safeasset.qrc"
INPUT_RESOURCES resource.bin)
qsr_add_resource(buildresource_telltales sources "${CMAKE_CURRENT_LIST_DIR}/safeasset.qrc")
add_executable(telltales WIN32 MACOSX_BUNDLE
${sources}
)
add_dependencies(telltales generatelayout_telltales)
if(NOT CMAKE_CROSSCOMPILING)
target_compile_definitions(telltales PUBLIC
HOST_BUILD
)
target_link_libraries(telltales PUBLIC
Qt::Quick
Qt::Widgets
Qt::Qml
)
endif()
target_link_libraries(telltales PUBLIC
Qt::SafeRenderer
Qt::SafePlatformAdaptation
)
install(TARGETS telltales
RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
)