Files
2026-05-02 15:30:06 +03:00

77 lines
2.7 KiB
CMake

cmake_minimum_required(VERSION 3.18.4)
# EN: Change this line to switch the target board manually: `pico` for RP2040 or `pico2` for RP2350.
# RU: Измените эту строку, чтобы вручную переключить целевую плату: `pico` для RP2040 или `pico2` для RP2350.
set(PICO_BOARD pico2 CACHE STRING "Pico SDK target board")
include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)
project(engine_demo_example C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Export compile_commands.json" FORCE)
pico_sdk_init()
add_library(display_engine STATIC
../../src/Font/font_data.c
../../src/core/display.c
../../src/core/display_transport.c
../../src/core/display_driver.c
../../src/render/context.c
../../src/render/line.c
../../src/render/grid.c
../../src/render/sine_wave.c
../../src/render/bezier.c
)
target_include_directories(display_engine PUBLIC
../../include
../../include/display
)
target_link_libraries(display_engine PUBLIC
pico_stdlib
hardware_spi
hardware_dma
hardware_timer
pico_multicore
)
# EN: Change the SPI bus, GPIO pins, and display controller here for this example.
# RU: Здесь изменяются SPI-шина, GPIO-пины и контроллер дисплея для этого примера.
set(DISPLAY_SPI_PORT spi1)
set(DISPLAY_PIN_MOSI 15) # DIN / SDA
set(DISPLAY_PIN_SCK 14) # CLK / SCL / SCK
set(DISPLAY_PIN_CS 13) # CS / SS
set(DISPLAY_PIN_DC 12) # DC / A0 / RS
set(DISPLAY_PIN_RST 11) # RST / RES / RESET
set(DISPLAY_PIN_BL 10) # BL / LED / LEDK
# EN: Available values: DISPLAY_TYPE_ST7789, DISPLAY_TYPE_ILI9341.
# RU: Доступные значения: DISPLAY_TYPE_ST7789, DISPLAY_TYPE_ILI9341.
set(DISPLAY_TYPE "DISPLAY_TYPE_ST7789" CACHE STRING "Display controller backend")
set_property(CACHE DISPLAY_TYPE PROPERTY STRINGS DISPLAY_TYPE_ST7789 DISPLAY_TYPE_ILI9341)
# EN: These definitions forward the selected board wiring into the display engine without editing its sources.
# RU: Эти определения передают выбранную разводку платы в display engine без правки его исходников.
target_compile_definitions(display_engine PUBLIC
DISPLAY_TYPE=${DISPLAY_TYPE}
DISPLAY_SPI_PORT=${DISPLAY_SPI_PORT}
DISPLAY_PIN_MOSI=${DISPLAY_PIN_MOSI}
DISPLAY_PIN_SCK=${DISPLAY_PIN_SCK}
DISPLAY_PIN_CS=${DISPLAY_PIN_CS}
DISPLAY_PIN_DC=${DISPLAY_PIN_DC}
DISPLAY_PIN_RST=${DISPLAY_PIN_RST}
DISPLAY_PIN_BL=${DISPLAY_PIN_BL}
)
add_executable(${PROJECT_NAME}
src/main.c
)
target_link_libraries(${PROJECT_NAME}
display_engine
)
pico_add_extra_outputs(${PROJECT_NAME})