card-os/CMakeLists.txt
2026-05-26 05:59:38 -04:00

38 lines
1.1 KiB
CMake

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_FILE:${TARGET_NAME}> $<TARGET_FILE_DIR:${TARGET_NAME}>/${TARGET_NAME}.bin
COMMENT "Generating raw .bin file for ${TARGET_NAME}"
)
endfunction()
add_subdirectory(examples)