cmake_minimum_required(VERSION 4.0) include(pico_sdk_import.cmake) project(card-os) set(PICO_USE_FASTEST_SUPPORTED_CLOCK 1) set(PICO_FLASH_SIZE_BYTES "8 * 1024 * 1024") pico_sdk_init() add_executable(card-os src/card-os.c src/usb_descriptors.c src/display.c src/ring-buffer.c ) target_include_directories(card-os PRIVATE include) target_link_libraries(card-os PRIVATE pico_stdlib tinyusb_device tinyusb_board pico_unique_id hardware_clocks hardware_spi pico_multicore) pico_set_linker_script(card-os ${CMAKE_CURRENT_SOURCE_DIR}/src/card-os-link.ld) pico_add_extra_outputs(card-os) add_library(card-os-user STATIC src/card-os-user.c ) target_include_directories(card-os-user PUBLIC include/user) target_link_options(card-os-user PUBLIC -Wl,--script=${CMAKE_CURRENT_SOURCE_DIR}/src/card-os-link-user.ld -nostartfiles) function(card_os_finalize_user_program TARGET_NAME) add_custom_command( TARGET ${TARGET_NAME} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -O binary $ $/${TARGET_NAME}.bin COMMENT "Generating raw .bin file for ${TARGET_NAME}" ) endfunction() add_subdirectory(examples)