diff --git a/ports/esp32/main/CMakeLists.txt b/ports/esp32/main/CMakeLists.txt index d7d08ea663..1f4bb3175b 100644 --- a/ports/esp32/main/CMakeLists.txt +++ b/ports/esp32/main/CMakeLists.txt @@ -170,22 +170,7 @@ target_link_libraries(${MICROPY_TARGET} usermod) # Collect all of the include directories and compile definitions for the IDF components. foreach(comp ${IDF_COMPONENTS}) - get_target_property(type __idf_${comp} TYPE) - set(_inc OFF) - set(_def OFF) - if(${type} STREQUAL STATIC_LIBRARY) - get_target_property(_inc __idf_${comp} INCLUDE_DIRECTORIES) - get_target_property(_def __idf_${comp} COMPILE_DEFINITIONS) - elseif(${type} STREQUAL INTERFACE_LIBRARY) - get_target_property(_inc __idf_${comp} INTERFACE_INCLUDE_DIRECTORIES) - get_target_property(_def __idf_${comp} INTERFACE_COMPILE_DEFINITIONS) - endif() - if(_inc) - list(APPEND MICROPY_CPP_INC_EXTRA ${_inc}) - endif() - if(_def) - list(APPEND MICROPY_CPP_DEF_EXTRA ${_def}) - endif() + micropy_gather_target_properties(__idf_${comp}) endforeach() if(IDF_VERSION_MINOR GREATER_EQUAL 2) diff --git a/ports/rp2/CMakeLists.txt b/ports/rp2/CMakeLists.txt index 37b041279f..5f3cdebd87 100644 --- a/ports/rp2/CMakeLists.txt +++ b/ports/rp2/CMakeLists.txt @@ -193,29 +193,9 @@ add_custom_command(TARGET ${MICROPY_TARGET} ) # Collect all the include directories and compile definitions for the pico-sdk components. -macro(_process_target targ) - if(TARGET ${targ}) - get_target_property(type ${targ} TYPE) - set(_inc OFF) - set(_def OFF) - if(${type} STREQUAL STATIC_LIBRARY) - get_target_property(_inc ${targ} INCLUDE_DIRECTORIES) - get_target_property(_def ${targ} COMPILE_DEFINITIONS) - elseif(${type} STREQUAL INTERFACE_LIBRARY) - get_target_property(_inc ${targ} INTERFACE_INCLUDE_DIRECTORIES) - get_target_property(_def ${targ} INTERFACE_COMPILE_DEFINITIONS) - endif() - if(_inc) - list(APPEND MICROPY_CPP_INC_EXTRA ${_inc}) - endif() - if(_def) - list(APPEND MICROPY_CPP_DEF_EXTRA ${_def}) - endif() - endif() -endmacro() foreach(comp ${PICO_SDK_COMPONENTS}) - _process_target(${comp}) - _process_target(${comp}_headers) + micropy_gather_target_properties(${comp}) + micropy_gather_target_properties(${comp}_headers) endforeach() # Include the main MicroPython cmake rules. diff --git a/py/py.cmake b/py/py.cmake index 52baaa8efc..be5deca251 100644 --- a/py/py.cmake +++ b/py/py.cmake @@ -122,3 +122,25 @@ set(MICROPY_SOURCE_PY ${MICROPY_PY_DIR}/vstr.c ${MICROPY_PY_DIR}/warning.c ) + +# Helper macro to collect include directories and compile definitions for qstr processing. +macro(micropy_gather_target_properties targ) + if(TARGET ${targ}) + get_target_property(type ${targ} TYPE) + set(_inc OFF) + set(_def OFF) + if(${type} STREQUAL STATIC_LIBRARY) + get_target_property(_inc ${targ} INCLUDE_DIRECTORIES) + get_target_property(_def ${targ} COMPILE_DEFINITIONS) + elseif(${type} STREQUAL INTERFACE_LIBRARY) + get_target_property(_inc ${targ} INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(_def ${targ} INTERFACE_COMPILE_DEFINITIONS) + endif() + if(_inc) + list(APPEND MICROPY_CPP_INC_EXTRA ${_inc}) + endif() + if(_def) + list(APPEND MICROPY_CPP_DEF_EXTRA ${_def}) + endif() + endif() +endmacro()