cmake_minimum_required(VERSION 3.18.4) include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake) project(my_app C CXX ASM) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) pico_sdk_init() set(DISPLAY_ENGINE_DIR ${CMAKE_CURRENT_LIST_DIR}/external/rp_pico_display_engine) add_library(display_engine STATIC ${DISPLAY_ENGINE_DIR}/src/Font/font_data.c ${DISPLAY_ENGINE_DIR}/src/core/display.c ${DISPLAY_ENGINE_DIR}/src/core/display_transport.c ${DISPLAY_ENGINE_DIR}/src/core/display_driver.c ${DISPLAY_ENGINE_DIR}/src/render/context.c ${DISPLAY_ENGINE_DIR}/src/render/line.c # Uncomment if/when you need these primitives: # ${DISPLAY_ENGINE_DIR}/src/render/grid.c # ${DISPLAY_ENGINE_DIR}/src/render/sine_wave.c # ${DISPLAY_ENGINE_DIR}/src/render/bezier.c ) target_include_directories(display_engine PUBLIC ${DISPLAY_ENGINE_DIR}/include ${DISPLAY_ENGINE_DIR}/include/display ) target_link_libraries(display_engine PUBLIC pico_stdlib hardware_spi hardware_dma hardware_timer pico_multicore ) target_compile_definitions(display_engine PUBLIC DISPLAY_TYPE=DISPLAY_TYPE_ST7789 DISPLAY_SPI_PORT=spi1 DISPLAY_PIN_MOSI=15 DISPLAY_PIN_SCK=14 DISPLAY_PIN_CS=13 DISPLAY_PIN_DC=12 DISPLAY_PIN_RST=11 DISPLAY_PIN_BL=10 ) add_executable(my_app src/main.c) target_link_libraries(my_app PRIVATE display_engine) pico_add_extra_outputs(my_app)