# cmd/sbc_harness/CMakeLists.txt - Build script for main sbc_harness.uf2 firmware file # # Copyright (C) 2024 Luke T. Shumaker # SPDX-License-Identifier: AGPL-3.0-or-later if (PICO_PLATFORM STREQUAL "rp2040") # Main compilation ############################################################# add_library(sbc_harness_objs main.c usb_keyboard.c ) target_include_directories(sbc_harness_objs PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/config) target_include_directories(sbc_harness_objs PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(sbc_harness_objs pico_stdlib hardware_flash libmisc libusb #libdhcp libhw ) pico_enable_stdio_usb(sbc_harness_objs 0) pico_enable_stdio_uart(sbc_harness_objs 1) pico_enable_stdio_semihosting(sbc_harness_objs 0) pico_enable_stdio_rtt(sbc_harness_objs 0) # Stack analysis ############################################################### target_compile_options(sbc_harness_objs PUBLIC "-fcallgraph-info=su,da") set_source_files_properties(sbc_harness_stack.c PROPERTIES GENERATED true ) add_custom_command( OUTPUT sbc_harness_stack.c COMMAND set -o pipefail && cat -- "$,INCLUDE,\.c\.o(bj)?$>,REPLACE,\.o(bj)?$,.ci>" | sed 's,^,//,' >sbc_harness_stack.c COMMAND_EXPAND_LISTS DEPENDS $ COMMENT "Calculating sbc_harness required stack sizes" ) # Link ######################################################################### add_executable(sbc_harness) target_link_libraries(sbc_harness sbc_harness_objs) target_sources(sbc_harness PRIVATE sbc_harness_stack.c) pico_add_extra_outputs(sbc_harness) # create .map/.bin/.hex/.uf2 files in addition to .elf pico_set_program_url(sbc_harness "https://git.lukeshu.com/sbc-harness") endif()