C
Qt Quick Ultralite Motorcycle Cluster Demo
cmake_minimum_required (VERSION 3.21.1)
project(motor_cluster VERSION 0.0.1 LANGUAGES C CXX ASM)
if (NOT TARGET Qul::Core)
find_package(Qul)
get_target_property(includes Qul::Core INTERFACE_INCLUDE_DIRECTORIES)
endif()
if(QUL_PLATFORM STREQUAL "mimxrt1170-evkb-freertos")
set(QMLPROJECT_FILE "qmlproject/motor_cluster_rotated.qmlproject")
# This variable can be defined on the command line
if (NOT DEFINED SIZE_VARIANT)
set(SIZE_VARIANT "big" CACHE STRING "Variant for motor cluster demo")
endif()
else()
set(QMLPROJECT_FILE "qmlproject/motor_cluster.qmlproject")
endif()
if (DEFINED SIZE_VARIANT)
set(MOTOR_CLUSTER_SELECTORS ${SIZE_VARIANT})
else()
set(MOTOR_CLUSTER_SELECTORS "")
endif()
if(QUL_PLATFORM MATCHES "^rh850")
list(APPEND MOTOR_CLUSTER_SELECTORS "rh850")
elseif(QUL_PLATFORM MATCHES "^tviic2d")
list(APPEND MOTOR_CLUSTER_SELECTORS "traveo-t2g")
elseif(QUL_PLATFORM MATCHES "^stm32f769")
list(APPEND MOTOR_CLUSTER_SELECTORS "stm32f769" "intro" "15fps")
elseif(QUL_PLATFORM MATCHES "^qt")
list(APPEND MOTOR_CLUSTER_SELECTORS "qt" "intro")
endif()
if(QUL_PLATFORM MATCHES "^tviic2d")
qul_add_target(motor_cluster
QML_PROJECT ${QMLPROJECT_FILE}
SELECTORS ${MOTOR_CLUSTER_SELECTORS}
)
target_link_libraries(motor_cluster PRIVATE Qul::PlatformTraveoIIExtras)
target_sources(motor_cluster PRIVATE src/traveo-t2g/main.cpp)
else()
qul_add_target(motor_cluster
QML_PROJECT ${QMLPROJECT_FILE}
SELECTORS ${MOTOR_CLUSTER_SELECTORS}
GENERATE_ENTRYPOINT
)
endif()
target_sources(motor_cluster PRIVATE
src/simulation/simulationcontroller.cpp
src/simulation/states.cpp
src/simulation/drivetrain.cpp
src/simulation/normaldrivestate.cpp)
target_include_directories(motor_cluster PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
if(SIZE_VARIANT STREQUAL "big")
target_include_directories(motor_cluster PRIVATE qmls/+big/gauges qmls/welcome)
endif()
app_target_setup_os(motor_cluster)