cmake_minimum_required(VERSION 3.13) set(PROJECT HappySpectrum) set(PICO_CXX_ENABLE_EXCEPTIONS 1) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DRELEASE -DNDEBUG") set(MAKE_TOOLS OFF) #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(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) include(pico_sdk_import.cmake) project(${PROJECT} CXX C ASM) pico_sdk_init() add_subdirectory(kilipili) add_compile_definitions( ON=1 OFF=0 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} ) add_executable(${PROJECT} kilipili/common/malloc.cpp rsrc/out/rsrc.cpp main.cpp Machine.h Machine.cpp Z80/Z80.h Z80/Z80.cpp Z80/Z80macros.h Z80/Z80opcodes.h Item.h Item.cpp Ula.h Ula.cpp Keymap.h Keyboard.h Keyboard.cpp HappySpectrum.h HappySpectrum.cpp Ay.h Ay.cpp Joystick.h Joystick.cpp MachineRenderer.cpp Beeper.h Beeper.cpp ) target_include_directories(${PROJECT} PUBLIC ${CMAKE_CURRENT_LIST_DIR} ) pico_enable_stdio_usb(${PROJECT} ${PICO_STDIO_USB}) pico_enable_stdio_uart(${PROJECT} ${PICO_STDIO_UART}) target_link_libraries(${PROJECT} PRIVATE kilipili ) pico_add_extra_outputs(${PROJECT})