Merge branch 'contrib/github_pr_17594_v5.5' into 'release/v5.5'

fix(depgraph): Add double quotes around dependency names (GitHub PR) (v5.5)

See merge request espressif/esp-idf!42492
This commit is contained in:
Roland Dobai
2025-10-20 09:18:29 +02:00
2 changed files with 32 additions and 13 deletions
+2 -2
View File
@@ -35,10 +35,10 @@ function(depgraph_add_edge dep_from dep_to)
# However, show which components are "common" by adding an edge from a node named "common".
# If necessary, add a new build property to customize this behavior.
if(NOT dep_from IN_LIST common_reqs)
idf_build_set_property(__BUILD_COMPONENT_DEPGRAPH "common -> ${dep_to}" APPEND)
idf_build_set_property(__BUILD_COMPONENT_DEPGRAPH "\"common\" -> \"${dep_to}\"" APPEND)
endif()
else()
idf_build_set_property(__BUILD_COMPONENT_DEPGRAPH "${dep_from} -> ${dep_to} ${attr}" APPEND)
idf_build_set_property(__BUILD_COMPONENT_DEPGRAPH "\"${dep_from}\" -> \"${dep_to}\" ${attr}" APPEND)
endif()
endfunction()
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Unlicense OR CC0-1.0
import argparse
import logging
@@ -6,13 +6,30 @@ from typing import Dict
from typing import List
from typing import Tuple
g1_g0_components = ['hal', 'cxx', 'newlib', 'freertos', 'esp_hw_support', 'heap', 'log', 'soc', 'esp_rom',
'esp_common', 'esp_system', 'xtensa', 'riscv', 'spi_flash', 'esp_mm']
g1_g0_components = [
'hal',
'cxx',
'newlib',
'freertos',
'esp_hw_support',
'heap',
'log',
'soc',
'esp_rom',
'esp_common',
'esp_system',
'xtensa',
'riscv',
'spi_flash',
'esp_mm',
]
expected_dep_violations = {'esp_system': ['esp_timer', 'bootloader_support', 'esp_pm'],
'spi_flash': ['bootloader_support', 'app_update', 'esp_driver_gpio'],
'esp_hw_support': ['efuse', 'bootloader_support', 'esp_driver_gpio', 'esp_timer', 'esp_pm', 'esp_security'],
'cxx': ['pthread']}
expected_dep_violations = {
'esp_system': ['esp_timer', 'bootloader_support', 'esp_pm'],
'spi_flash': ['bootloader_support', 'app_update', 'esp_driver_gpio'],
'esp_hw_support': ['efuse', 'bootloader_support', 'esp_driver_gpio', 'esp_timer', 'esp_pm', 'esp_security'],
'cxx': ['pthread'],
}
def parse_dependencies(file_path: str) -> Tuple[Dict[str, List[str]], List[str]]:
@@ -25,9 +42,9 @@ def parse_dependencies(file_path: str) -> Tuple[Dict[str, List[str]], List[str]]
if line:
parts = line.split(' -> ')
if (len(parts) >= 2):
source = parts[0]
target = parts[1].split()[0] # Extracting the target component
if len(parts) >= 2:
source = parts[0].strip('"')
target = parts[1].split()[0].strip('"') # Extracting the target component
logging.debug(f'Parsed dependency: {source} -> {target}')
# Check that g1/g0 dependencies are either on the list of expected violations
@@ -48,7 +65,9 @@ def parse_dependencies(file_path: str) -> Tuple[Dict[str, List[str]], List[str]]
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Check G1 dependencies')
parser.add_argument('--component_deps_file', required=True, type=str, help='The path to the component_deps.dot file')
parser.add_argument(
'--component_deps_file', required=True, type=str, help='The path to the component_deps.dot file'
)
args = parser.parse_args()