mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 19:13:21 +00:00
fix(cmake): Fix "IMPORTED_LOCATION not set for imported target" errors
esp-idf uses imported targets as dummy targets that are never linked. Previous CMake versions would ignore these and not error on unset IMPORTED_LOCATION if they are never actually linked. CMake 4.2 and newer errors during codemodel-v2 api queries when imported targets are missing IMPORTED_LOCATION, so set a dummy location that would error when actually linked, which fixes the error during api queries. Closes https://github.com/espressif/esp-idf/pull/18103
This commit is contained in:
committed by
Frantisek Hrbata
parent
6fc312a5f0
commit
057016d596
@@ -198,6 +198,8 @@ function(__build_init idf_path)
|
||||
# Create the build target, to which the ESP-IDF build properties, dependencies are attached to.
|
||||
# Must be global so as to be accessible from any subdirectory in custom projects.
|
||||
add_library(__idf_build_target STATIC IMPORTED GLOBAL)
|
||||
# Set the IMPORTED_LOCATION property to avoid errors on IDE codemodel queries with CMake >=4.2
|
||||
set_property(TARGET __idf_build_target PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/dummy.a")
|
||||
|
||||
# Set the Python path (which may be passed in via -DPYTHON=) and store in a build property
|
||||
set_default(PYTHON "python")
|
||||
|
||||
@@ -166,6 +166,8 @@ function(__component_add component_dir prefix component_source)
|
||||
if(NOT component_target IN_LIST component_targets)
|
||||
if(NOT TARGET ${component_target})
|
||||
add_library(${component_target} STATIC IMPORTED)
|
||||
# Set the IMPORTED_LOCATION property to avoid errors on IDE codemodel queries with CMake >=4.2
|
||||
set_property(TARGET ${component_target} PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/dummy.a")
|
||||
endif()
|
||||
idf_build_set_property(__COMPONENT_TARGETS ${component_target} APPEND)
|
||||
else()
|
||||
|
||||
Reference in New Issue
Block a user