Merge branch 'fix/cmakev2_linux_build_fixes' into 'master'

fix(cmakev2): Fixed linux build for Build System v2

Closes IDFCI-8756

See merge request espressif/esp-idf!45922
This commit is contained in:
Sudeep Mohanty
2026-02-24 09:46:03 +01:00
3 changed files with 21 additions and 4 deletions

View File

@@ -12,6 +12,11 @@ endif()
set(priv_req http_parser esp_timer)
if(NOT ${IDF_TARGET} STREQUAL "linux")
list(APPEND priv_req lwip)
else()
# For linux target on Build system v2, add lwip to PRIV_REQUIRES when CONFIG_LWIP_ENABLE is set.
if(CONFIG_LWIP_ENABLE AND IDF_BUILD_V2)
list(APPEND priv_req lwip)
endif()
endif()
idf_component_register(SRCS "${srcs}"
@@ -27,8 +32,7 @@ if(NOT ${IDF_TARGET} STREQUAL "linux")
idf_component_get_property(lwip lwip COMPONENT_LIB)
set_property(TARGET ${lwip} APPEND PROPERTY LINK_INTERFACE_MULTIPLICITY 5)
else()
# Check if LWIP in the build for linux target to adapt esp-tls compatibility layer
idf_build_get_property(build_components BUILD_COMPONENTS)
# For linux target, define ESP_TLS_WITH_LWIP if LWIP is enabled in the build
if(CONFIG_LWIP_ENABLE)
target_compile_definitions(${COMPONENT_LIB} PRIVATE ESP_TLS_WITH_LWIP=1)
endif()

View File

@@ -134,7 +134,12 @@ if(${target} STREQUAL "linux" AND EXISTS ${partition_csv})
# target. This is a hack, since that target name is an implementation detail
# of the build system.
add_dependencies(__idf_build_target partition-table)
if(IDF_BUILD_V2)
# Build system v2 does not support __idf_build_target target, so add to ALL target.
add_custom_target(partition-table-linux-build ALL DEPENDS partition-table)
else()
add_dependencies(__idf_build_target partition-table)
endif()
endif()
# Add signing steps

View File

@@ -16,6 +16,13 @@ endif()
set(req esp-tls)
if(NOT ${IDF_TARGET} STREQUAL "linux")
list(APPEND req lwip esp_timer)
else()
# Add esp_timer to REQUIRES for the linux target when Build system v2 is used
# since Build system v2 does not support BUILD_COMPONENTS and cannot link to
# esp_timer conditionally if LWIP is in the build.
if(CONFIG_LWIP_IPV4 AND IDF_BUILD_V2)
list(APPEND req esp_timer)
endif()
endif()
idf_component_register(SRCS "${srcs}"
@@ -23,9 +30,10 @@ idf_component_register(SRCS "${srcs}"
PRIV_INCLUDE_DIRS "private_include"
REQUIRES ${req})
if(${IDF_TARGET} STREQUAL "linux")
if(${IDF_TARGET} STREQUAL "linux" AND NOT IDF_BUILD_V2)
# Check if LWIP in the build for linux target to add esp_timer to the dependencies
# since socks_proxy transport needs it and lwip & linux build could use it
# Note: Build System v2 adds dependency on esp_timer during component registration
idf_build_get_property(build_components BUILD_COMPONENTS)
if("lwip" IN_LIST build_components)
idf_component_get_property(esp_timer esp_timer COMPONENT_LIB)