forked from espressif/esp-idf
Merge branch 'feature/improve_chip_target_detection' into 'master'
tools: Improve chip target detection Closes IDF-3751 See merge request espressif/esp-idf!15691
This commit is contained in:
@@ -445,7 +445,11 @@ macro(project project_name)
|
|||||||
|
|
||||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||||
set(mapfile "${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.map")
|
set(mapfile "${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.map")
|
||||||
target_link_libraries(${project_elf} "-Wl,--cref" "-Wl,--Map=\"${mapfile}\"")
|
set(idf_target "${IDF_TARGET}")
|
||||||
|
string(TOUPPER ${idf_target} idf_target)
|
||||||
|
target_link_libraries(${project_elf} "-Wl,--cref" "-Wl,--defsym=IDF_TARGET_${idf_target}=0"
|
||||||
|
"-Wl,--Map=\"${mapfile}\"")
|
||||||
|
unset(idf_target)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY
|
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY
|
||||||
|
@@ -263,12 +263,18 @@ def detect_target_chip(map_file: Iterable) -> str:
|
|||||||
''' Detect target chip based on the target archive name in the linker script part of the MAP file '''
|
''' Detect target chip based on the target archive name in the linker script part of the MAP file '''
|
||||||
scan_to_header(map_file, 'Linker script and memory map')
|
scan_to_header(map_file, 'Linker script and memory map')
|
||||||
|
|
||||||
RE_TARGET = re.compile(r'project_elf_src_(.*)\.c.obj')
|
RE_TARGET = re.compile(r'IDF_TARGET_(\S*) =')
|
||||||
|
# For back-compatible with cmake in idf version before 5.0
|
||||||
|
RE_TARGET_CMAKEv4x = re.compile(r'project_elf_src_(\S*)\.c.obj')
|
||||||
# For back-compatible with make
|
# For back-compatible with make
|
||||||
RE_TARGET_MAKE = re.compile(r'^LOAD .*?/xtensa-([^-]+)-elf/')
|
RE_TARGET_MAKE = re.compile(r'^LOAD .*?/xtensa-([^-]+)-elf/')
|
||||||
|
|
||||||
for line in map_file:
|
for line in map_file:
|
||||||
match_target = RE_TARGET.search(line)
|
match_target = RE_TARGET.search(line)
|
||||||
|
if match_target:
|
||||||
|
return match_target.group(1).lower()
|
||||||
|
|
||||||
|
match_target = RE_TARGET_CMAKEv4x.search(line)
|
||||||
if match_target:
|
if match_target:
|
||||||
return match_target.group(1)
|
return match_target.group(1)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user