This builds for me though I don't lnow if it runs or is correct for whatever hardware you have. In particular there are a number of 'pimoroni-pico/libraries/pico_graphics/pico_graphics_pen_*.cpp' files and I just picked one which allowed it to build.
You may have to change 'PIMORONI_PATH'. It is how it is here as I have 'pimoroni-pico' installed under '~/pico' alongside 'pico-sdk'. You could create 'PIMORONI_PATH' as an environment variable.
If wanting to build something other than 'gfx_demo' I expect you will have to specify whatever '.cpp' from the 'pimoroni-pico' library are appropriate.
So just two files for the out of tree build -Which can be built with -Alternatively -
You may have to change 'PIMORONI_PATH'. It is how it is here as I have 'pimoroni-pico' installed under '~/pico' alongside 'pico-sdk'. You could create 'PIMORONI_PATH' as an environment variable.
If wanting to build something other than 'gfx_demo' I expect you will have to specify whatever '.cpp' from the 'pimoroni-pico' library are appropriate.
Code:
set(PROJECT pimoroni_gfx_demo)set(PICO_SDK_PATH $ENV{PICO_SDK_PATH})set(PIMORONI_PATH ${PICO_SDK_PATH}/../pimoroni-pico)cmake_minimum_required(VERSION 3.12)include(${PICO_SDK_PATH}/external/pico_sdk_import.cmake)project(${PROJECT} C CXX ASM)pico_sdk_init()add_executable(${PROJECT} gfx_demo.cpp ${PIMORONI_PATH}/drivers/button/button.cpp ${PIMORONI_PATH}/drivers/rgbled/rgbled.cpp ${PIMORONI_PATH}/drivers/st7567/st7567.cpp ${PIMORONI_PATH}/libraries/bitmap_fonts/bitmap_fonts.cpp ${PIMORONI_PATH}/libraries/pico_graphics/pico_graphics.cpp ${PIMORONI_PATH}/libraries/pico_graphics/pico_graphics_pen_1bit.cpp ${PIMORONI_PATH}/libraries/pico_graphics/types.cpp)target_include_directories(${PROJECT} PRIVATE ${PIMORONI_PATH})target_link_libraries(${PROJECT} pico_stdlib hardware_spi hardware_pwm)pico_add_extra_outputs(${PROJECT})pico_enable_stdio_usb(${PROJECT} 0)pico_enable_stdio_uart(${PROJECT} 0)Code:
pi@Pi4B:~/mypico/pimoroni_gfx_demo $ lsCMakeLists.txt gfx_demo.cppCode:
pi@Pi4B:~/mypico/pimoroni_gfx_demo $ mkdir buildpi@Pi4B:~/mypico/pimoroni_gfx_demo $ cd buildpi@Pi4B:~/mypico/pimoroni_gfx_demo/build $ cmake .....pi@Pi4B:~/mypico/pimoroni_gfx_demo/build $ cmake .....[100%] Linking CXX executable pimoroni_gfx_demo.elf[100%] Built target pimoroni_gfx_demopi@Pi4B:~/mypico/pimoroni_gfx_demo/build $ ls -l *.uf2-rw-r--r-- 1 pi pi 72192 Jul 28 09:50 pimoroni_gfx_demo.uf2Code:
pi@Pi4B:~/mypico/pimoroni_gfx_demo $ cmake -S . -B build...pi@Pi4B:~/mypico/pimoroni_gfx_demo $ cmake --build build...pi@Pi4B:~/mypico/pimoroni_gfx_demo $ ls -l build/*.uf2-rw-r--r-- 1 pi pi 72192 Jul 28 09:53 build/pimoroni_gfx_demo.uf2Statistics: Posted by hippy — Mon Jul 28, 2025 8:58 am