cmake_minimum_required(VERSION 3.13) # just to remember: #set(PICO_BOARD pico) #set(PICO_BOARD pico_w) #set(PICO_BOARD pico2) # If pico2 is selected you have to select PICO_PLATFORM #set(PICO_PLATFORM rp2350-arm-s) #set(PICO_PLATFORM rp2350-riscv) option(MAKE_TOOLS "compile the unit test and desktop tools (desktop, not pico!)" OFF) set(CMAKE_VERBOSE_MAKEFILE off) #if(CMAKE_SYSTEM_NAME STREQUAL "PICO") if(MAKE_TOOLS) add_subdirectory(kilipili/desktop_tools) else() include(pico_sdk_import.cmake) #include(pico_extras_import.cmake) project(PicoVGA CXX C ASM) set(CMAKE_CXX_STANDARD 20) set(PICO_CXX_ENABLE_EXCEPTIONS 1) #set(PICO_CXX_ENABLE_RTTI 1) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DRELEASE -DNDEBUG") MESSAGE (STATUS "System = ${CMAKE_SYSTEM_NAME}") # Linux, PICO MESSAGE (STATUS "CPU = ${CMAKE_SYSTEM_PROCESSOR}") # x86_64, cortex-m0plus #################################################################### # OPTIONS: option(DEFAULT_UTF8_MODE "use UTF-8 encoding on serial line" ON) option(OPTION_MEMORY_ID "include `char ID[8]` in some classes" ON) option(MALLOC_EXTENDED_VALIDATION "check chunk linking in malloc()" ON) option(MALLOC_EXTENDED_LOGGING "log all malloc() and free() and dump heap if malloc() returns NULL" OFF) option(OPTION_FF_FS_TINY "minimize ram usage in FatFS" OFF) set(DEFAULT_SCREENSIZE "640x480" CACHE STRING "Default screen size") set(DEFAULT_COLORMODE "a1w8" CACHE STRING "Default color mode") set(DEFAULT_SCANLINE_BUFFER_SIZE "4" CACHE STRING "Default buffer size for prepared scanlines") set_property(CACHE DEFAULT_COLORMODE PROPERTY STRINGS i1 i2 i4 i8 a1w8) set_property(CACHE DEFAULT_SCREENSIZE PROPERTY STRINGS 320x240 400x300 512x384 640x480 800x600 1024x768 640x384 1280x768) set_property(CACHE DEFAULT_SCANLINE_BUFFER_SIZE PROPERTY STRINGS "2" "4" "8" "16") #################################################################### add_executable(Console main.cpp Console.h Console.cpp kilipili/common/malloc.cpp rsrc/rsrc/out/rsrc.cpp ) add_compile_definitions( ON=1 OFF=0 DEFAULT_UTF8_MODE=${DEFAULT_UTF8_MODE} DEFAULT_VGA_MODE=vga_mode_${DEFAULT_SCREENSIZE}_60 DEFAULT_COLORMODE=colormode_${DEFAULT_COLORMODE} DEFAULT_SCANLINE_BUFFER_SIZE=${DEFAULT_SCANLINE_BUFFER_SIZE} PICO_STDIO_USB=${PICO_STDIO_USB} PICO_STDIO_UART=${PICO_STDIO_UART} MALLOC_EXTENDED_VALIDATION=${MALLOC_EXTENDED_VALIDATION} MALLOC_EXTENDED_LOGGING=${MALLOC_EXTENDED_LOGGING} OPTION_MEMORY_ID=${OPTION_MEMORY_ID} FF_FS_TINY=${OPTION_FF_FS_TINY} PICO_CORE1_STACK_SIZE=0x600 ) pico_sdk_init() add_subdirectory(kilipili) pico_enable_stdio_usb(Console ${PICO_STDIO_USB}) pico_enable_stdio_uart(Console ${PICO_STDIO_UART}) # Pull in libraries: (this also adds the header search paths) target_link_libraries(Console PUBLIC kilipili #pico_stdlib #pico_multicore #hardware_pwm #hardware_pio #hardware_dma #hardware_irq #hardware_spi #hardware_interp #hardware_rtc #hardware_i2c #hardware_adc ) # create map/bin/hex/uf2 file etc. pico_add_extra_outputs(Console) endif()