add optional COMPILE_DEFINE from cmake cli

This commit is contained in:
hathach
2024-06-18 16:18:58 +07:00
parent de62b55042
commit ac3ec59845
2 changed files with 20 additions and 16 deletions

View File

@@ -140,7 +140,6 @@ function(family_filter RESULT DIR)
endif() endif()
endfunction() endfunction()
function(family_add_subdirectory DIR) function(family_add_subdirectory DIR)
family_filter(SHOULD_ADD "${DIR}") family_filter(SHOULD_ADD "${DIR}")
if (SHOULD_ADD) if (SHOULD_ADD)
@@ -148,13 +147,11 @@ function(family_add_subdirectory DIR)
endif() endif()
endfunction() endfunction()
function(family_get_project_name OUTPUT_NAME DIR) function(family_get_project_name OUTPUT_NAME DIR)
get_filename_component(SHORT_NAME ${DIR} NAME) get_filename_component(SHORT_NAME ${DIR} NAME)
set(${OUTPUT_NAME} ${TINYUSB_FAMILY_PROJECT_NAME_PREFIX}${SHORT_NAME} PARENT_SCOPE) set(${OUTPUT_NAME} ${TINYUSB_FAMILY_PROJECT_NAME_PREFIX}${SHORT_NAME} PARENT_SCOPE)
endfunction() endfunction()
function(family_initialize_project PROJECT DIR) function(family_initialize_project PROJECT DIR)
# set output suffix to .elf (skip espressif and rp2040) # set output suffix to .elf (skip espressif and rp2040)
if(NOT FAMILY STREQUAL "espressif" AND NOT FAMILY STREQUAL "rp2040") if(NOT FAMILY STREQUAL "espressif" AND NOT FAMILY STREQUAL "rp2040")
@@ -168,7 +165,6 @@ function(family_initialize_project PROJECT DIR)
endif() endif()
endfunction() endfunction()
#------------------------------------------------------------- #-------------------------------------------------------------
# Common Target Configure # Common Target Configure
# Most families use these settings except rp2040 and espressif # Most families use these settings except rp2040 and espressif
@@ -194,7 +190,6 @@ function(family_add_rtos TARGET RTOS)
endif () endif ()
endfunction() endfunction()
# Add common configuration to example # Add common configuration to example
function(family_configure_common TARGET RTOS) function(family_configure_common TARGET RTOS)
family_add_rtos(${TARGET} ${RTOS}) family_add_rtos(${TARGET} ${RTOS})
@@ -205,14 +200,12 @@ function(family_configure_common TARGET RTOS)
BOARD_${BOARD_UPPER} BOARD_${BOARD_UPPER}
) )
# run size after build # compile define from command line
find_program(SIZE_EXE ${CMAKE_SIZE}) if(DEFINED COMPILE_DEFINE)
if(NOT ${SIZE_EXE} STREQUAL SIZE_EXE-NOTFOUND) #separate_arguments(COMPILE_DEFINE_LIST UNIX_COMMAND "${COMPILE_DEFINE}")
add_custom_command(TARGET ${TARGET} POST_BUILD target_compile_definitions(${TARGET} PUBLIC ${COMPILE_DEFINE})
COMMAND ${SIZE_EXE} $<TARGET_FILE:${TARGET}> endif()
)
endif ()
# Add warnings flags
target_compile_options(${TARGET} PUBLIC ${WARNING_FLAGS_${CMAKE_C_COMPILER_ID}}) target_compile_options(${TARGET} PUBLIC ${WARNING_FLAGS_${CMAKE_C_COMPILER_ID}})
# Generate linker map file # Generate linker map file
@@ -235,7 +228,6 @@ function(family_configure_common TARGET RTOS)
# LOGGER option # LOGGER option
if (DEFINED LOGGER) if (DEFINED LOGGER)
target_compile_definitions(${TARGET} PUBLIC LOGGER_${LOGGER}) target_compile_definitions(${TARGET} PUBLIC LOGGER_${LOGGER})
# Add segger rtt to example # Add segger rtt to example
if(LOGGER STREQUAL "RTT" OR LOGGER STREQUAL "rtt") if(LOGGER STREQUAL "RTT" OR LOGGER STREQUAL "rtt")
if (NOT TARGET segger_rtt) if (NOT TARGET segger_rtt)
@@ -246,8 +238,15 @@ function(family_configure_common TARGET RTOS)
target_link_libraries(${TARGET} PUBLIC segger_rtt) target_link_libraries(${TARGET} PUBLIC segger_rtt)
endif () endif ()
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 # Add tinyusb to example
function(family_add_tinyusb TARGET OPT_MCU RTOS) function(family_add_tinyusb TARGET OPT_MCU RTOS)
@@ -289,7 +288,6 @@ function(family_add_tinyusb TARGET OPT_MCU RTOS)
endfunction() endfunction()
# Add bin/hex output # Add bin/hex output
function(family_add_bin_hex TARGET) function(family_add_bin_hex TARGET)
add_custom_command(TARGET ${TARGET} POST_BUILD add_custom_command(TARGET ${TARGET} POST_BUILD

View File

@@ -175,6 +175,12 @@ function(family_configure_target TARGET RTOS)
# export RTOS_SUFFIX to parent scope # export RTOS_SUFFIX to parent scope
set(RTOS_SUFFIX ${RTOS_SUFFIX} 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_add_extra_outputs(${TARGET})
pico_enable_stdio_uart(${TARGET} 1) pico_enable_stdio_uart(${TARGET} 1)
target_link_libraries(${TARGET} PUBLIC pico_stdlib tinyusb_board${RTOS_SUFFIX} tinyusb_additions) target_link_libraries(${TARGET} PUBLIC pico_stdlib tinyusb_board${RTOS_SUFFIX} tinyusb_additions)