set(defaults_arg --defaults "${SDKCONFIG_DEFAULTS}")
endif()
+ # Set these in the parent scope, so that they can be written to project_description.json
+ set(kconfigs "${kconfigs}")
+ set(COMPONENT_KCONFIGS "${kconfigs}" PARENT_SCOPE)
+ set(COMPONENT_KCONFIGS_PROJBUILD "${kconfigs_projbuild}" PARENT_SCOPE)
+
set(confgen_basecommand
${PYTHON} ${IDF_PATH}/tools/kconfig_new/confgen.py
--kconfig ${ROOT_KCONFIG}
idf_add_executable()
# Write project description JSON file
+ make_json_list("${BUILD_COMPONENTS}" build_components_json)
+ make_json_list("${BUILD_COMPONENT_PATHS}" build_component_paths_json)
configure_file("${IDF_PATH}/tools/cmake/project_description.json.in"
"${CMAKE_BINARY_DIR}/project_description.json")
+ unset(build_components_json)
+ unset(build_component_paths_json)
#
# Finish component registration (add cross-dependencies, make
"project_path": "${PROJECT_PATH}",
"build_dir": "${CMAKE_BINARY_DIR}",
"config_file": "${SDKCONFIG}",
+ "config_defaults": "${SDKCONFIG_DEFAULTS}",
"app_elf": "${PROJECT_NAME}.elf",
"app_bin": "${PROJECT_NAME}.bin",
"git_revision": "${IDF_VER}",
"phy_data_partition": "${CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION}",
- "monitor_baud" : "${CONFIG_MONITOR_BAUD}"
+ "monitor_baud" : "${CONFIG_MONITOR_BAUD}",
+ "config_environment" : {
+ "COMPONENT_KCONFIGS" : "${COMPONENT_KCONFIGS}",
+ "COMPONENT_KCONFIGS_PROJBUILD" : "${COMPONENT_KCONFIGS_PROJBUILD}"
+ },
+ "build_components" : ${build_components_json},
+ "build_component_paths" : ${build_component_paths_json}
}
# executable(s) the library is linked to. This is done manually in components.cmake.
set_property(TARGET "${target}" APPEND PROPERTY LINK_DEPENDS "${abs_script}")
endfunction()
+
+# Convert a CMake list to a JSON list and store it in a variable
+function(make_json_list list variable)
+ string(REPLACE ";" "\", \"" result "[ \"${list}\" ]")
+ set("${variable}" "${result}" PARENT_SCOPE)
+endfunction()