diff options
Diffstat (limited to 'cmd/sbc_harness/CMakeLists.txt')
-rw-r--r-- | cmd/sbc_harness/CMakeLists.txt | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/cmd/sbc_harness/CMakeLists.txt b/cmd/sbc_harness/CMakeLists.txt index d59e2b5..85e61ab 100644 --- a/cmd/sbc_harness/CMakeLists.txt +++ b/cmd/sbc_harness/CMakeLists.txt @@ -5,13 +5,15 @@ if (PICO_PLATFORM STREQUAL "rp2040") -add_executable(sbc_harness +# Main compilation ############################################################# + +add_library(sbc_harness_objs main.c usb_keyboard.c ) -target_include_directories(sbc_harness PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/config) -target_include_directories(sbc_harness PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(sbc_harness +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 @@ -20,13 +22,30 @@ target_link_libraries(sbc_harness #libdhcp libhw ) -target_compile_options(sbc_harness PUBLIC "-fcallgraph-info=su,da") +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 -- "$<LIST:TRANSFORM,$<LIST:FILTER,$<TARGET_OBJECTS:sbc_harness_objs>,INCLUDE,\.c\.o(bj)?$>,REPLACE,\.o(bj)?$,.ci>" | sed 's,^,//,' >sbc_harness_stack.c + COMMAND_EXPAND_LISTS + DEPENDS $<TARGET_OBJECTS:sbc_harness_objs> + COMMENT "Calculating sbc_harness required stack sizes" +) -pico_enable_stdio_usb(sbc_harness 0) -pico_enable_stdio_uart(sbc_harness 1) -pico_enable_stdio_semihosting(sbc_harness 0) -pico_enable_stdio_rtt(sbc_harness 0) +# 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") |