C

Qt Quick Ultralite static_library Example

# Copyright (C) 2025 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial
cmake_minimum_required (VERSION 3.21.1)

project(static_library_example VERSION 0.0.1 LANGUAGES C CXX ASM)

find_package(QulApp)

if(QUL_OS STREQUAL "FreeRTOS")
    message(STATUS "Static library example is disabled for FreeRTOS based platforms")
    return()
endif()

set(EXAMPLE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})

# Add configuration of Qt4MCU_GUI target for prebuild step
add_subdirectory(lib/Qt_for_MCU)

if(CMAKE_CROSSCOMPILING)
    set(CMAKE_EXECUTABLE_SUFFIX ".elf")
endif()

add_executable(static_library_example
        src/main.cpp
)

qul_generate_flash_target(static_library_example)

# If QUL GUI library has IPO enabled then we need also enable it for our target
get_target_property(QUL_LIB_IPO_CONFIG Qt4MCU_GUI INTERPROCEDURAL_OPTIMIZATION)
set_target_properties(static_library_example PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${QUL_LIB_IPO_CONFIG})

target_include_directories(static_library_example
    PRIVATE
        # Add folder containing qul_run.h header file
        ${CMAKE_CURRENT_BINARY_DIR}/lib/Qt_for_MCU
        # Add folder containing sensorAPI.h header file
        ${CMAKE_CURRENT_SOURCE_DIR}/include
)

target_link_libraries(static_library_example
    PRIVATE
        Qt4MCU_GUI
        Qul::Controls
        Qt4MCU_GUI
)

target_link_libraries(static_library_example PRIVATE Qul::PlatformDefaultLinkerScript)