summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2024-06-18 16:18:58 +0700
committerhathach <[email protected]>2024-06-18 16:18:58 +0700
commitac3ec598458c63d9866019dd6c42ef0d304b8bf4 (patch)
tree8f1330de839c5f412d4ff4352c8f08b09b72200b
parentde62b55042a40a0b1117600d3686787a253c0109 (diff)
add optional COMPILE_DEFINE from cmake cli
-rw-r--r--hw/bsp/family_support.cmake30
-rw-r--r--hw/bsp/rp2040/family.cmake6
2 files changed, 20 insertions, 16 deletions
diff --git a/hw/bsp/family_support.cmake b/hw/bsp/family_support.cmake
index 94d55f04a..d631c8563 100644
--- a/hw/bsp/family_support.cmake
+++ b/hw/bsp/family_support.cmake
@@ -140,7 +140,6 @@ function(family_filter RESULT DIR)
endif()
endfunction()
-
function(family_add_subdirectory DIR)
family_filter(SHOULD_ADD "${DIR}")
if (SHOULD_ADD)
@@ -148,13 +147,11 @@ function(family_add_subdirectory DIR)
endif()
endfunction()
-
function(family_get_project_name OUTPUT_NAME DIR)
get_filename_component(SHORT_NAME ${DIR} NAME)
set(${OUTPUT_NAME} ${TINYUSB_FAMILY_PROJECT_NAME_PREFIX}${SHORT_NAME} PARENT_SCOPE)
endfunction()
-
function(family_initialize_project PROJECT DIR)
# set output suffix to .elf (skip espressif and rp2040)
if(NOT FAMILY STREQUAL "espressif" AND NOT FAMILY STREQUAL "rp2040")
@@ -168,7 +165,6 @@ function(family_initialize_project PROJECT DIR)
endif()
endfunction()
-
#-------------------------------------------------------------
# Common Target Configure
# Most families use these settings except rp2040 and espressif
@@ -194,7 +190,6 @@ function(family_add_rtos TARGET RTOS)
endif ()
endfunction()
-
# Add common configuration to example
function(family_configure_common TARGET RTOS)
family_add_rtos(${TARGET} ${RTOS})
@@ -205,14 +200,12 @@ function(family_configure_common TARGET RTOS)
BOARD_${BOARD_UPPER}
)
- # run size after build
- find_program(SIZE_EXE ${CMAKE_SIZE})
- if(NOT ${SIZE_EXE} STREQUAL SIZE_EXE-NOTFOUND)
- add_custom_command(TARGET ${TARGET} POST_BUILD
- COMMAND ${SIZE_EXE} $<TARGET_FILE:${TARGET}>
- )
- endif ()
- # Add warnings flags
+ # compile define from command line
+ if(DEFINED COMPILE_DEFINE)
+ #separate_arguments(COMPILE_DEFINE_LIST UNIX_COMMAND "${COMPILE_DEFINE}")
+ target_compile_definitions(${TARGET} PUBLIC ${COMPILE_DEFINE})
+ endif()
+
target_compile_options(${TARGET} PUBLIC ${WARNING_FLAGS_${CMAKE_C_COMPILER_ID}})
# Generate linker map file
@@ -235,7 +228,6 @@ function(family_configure_common TARGET RTOS)
# LOGGER option
if (DEFINED LOGGER)
target_compile_definitions(${TARGET} PUBLIC LOGGER_${LOGGER})
-
# Add segger rtt to example
if(LOGGER STREQUAL "RTT" OR LOGGER STREQUAL "rtt")
if (NOT TARGET segger_rtt)
@@ -246,8 +238,15 @@ function(family_configure_common TARGET RTOS)
target_link_libraries(${TARGET} PUBLIC segger_rtt)
endif ()
endif ()
-endfunction()
+ # run size after build
+ find_program(SIZE_EXE ${CMAKE_SIZE})
+ if(NOT ${SIZE_EXE} STREQUAL SIZE_EXE-NOTFOUND)
+ add_custom_command(TARGET ${TARGET} POST_BUILD
+ COMMAND ${SIZE_EXE} $<TARGET_FILE:${TARGET}>
+ )
+ endif ()
+endfunction()
# Add tinyusb to example
function(family_add_tinyusb TARGET OPT_MCU RTOS)
@@ -289,7 +288,6 @@ function(family_add_tinyusb TARGET OPT_MCU RTOS)
endfunction()
-
# Add bin/hex output
function(family_add_bin_hex TARGET)
add_custom_command(TARGET ${TARGET} POST_BUILD
diff --git a/hw/bsp/rp2040/family.cmake b/hw/bsp/rp2040/family.cmake
index b41d7fbea..5d82cbf62 100644
--- a/hw/bsp/rp2040/family.cmake
+++ b/hw/bsp/rp2040/family.cmake
@@ -175,6 +175,12 @@ function(family_configure_target TARGET RTOS)
# export RTOS_SUFFIX to parent scope
set(RTOS_SUFFIX ${RTOS_SUFFIX} PARENT_SCOPE)
+ # compile define from command line
+ if(DEFINED COMPILE_DEFINE)
+ #separate_arguments(COMPILE_DEFINE_LIST UNIX_COMMAND "${COMPILE_DEFINE}")
+ target_compile_definitions(${TARGET} PUBLIC ${COMPILE_DEFINE})
+ endif()
+
pico_add_extra_outputs(${TARGET})
pico_enable_stdio_uart(${TARGET} 1)
target_link_libraries(${TARGET} PUBLIC pico_stdlib tinyusb_board${RTOS_SUFFIX} tinyusb_additions)