| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- if(NOT BOOTLOADER_BUILD)
- set(PARTITION_TABLE_OFFSET ${CONFIG_PARTITION_TABLE_OFFSET})
- # Set PARTITION_CSV_PATH to the configured partition CSV file
- # absolute path
- if(CONFIG_PARTITION_TABLE_CUSTOM)
- # Custom filename expands any path relative to the project
- get_filename_component(PARTITION_CSV_PATH "${CONFIG_PARTITION_TABLE_FILENAME}"
- ABSOLUTE BASE_DIR "${IDF_PROJECT_PATH}")
- if(NOT EXISTS "${PARTITION_CSV_PATH}")
- message(WARNING "Partition table CSV file ${PARTITION_CSV_PATH} not found. "
- "Change custom partition CSV path in menuconfig.")
- # Note: partition_table CMakeLists.txt contains some logic to create a dummy
- # partition_table target in this case, see comments in that file.
- endif()
- else()
- # Other .csv files are always in the component directory
- get_filename_component(PARTITION_CSV_PATH "${COMPONENT_PATH}/${CONFIG_PARTITION_TABLE_FILENAME}" ABSOLUTE)
- if(NOT EXISTS "${PARTITION_CSV_PATH}")
- message(FATAL_ERROR "Internal error, built-in ${PARTITION_CSV_PATH} not found.")
- endif()
- endif()
- # need to re-run CMake if the partition CSV changes, as the offsets/sizes of partitions may change
- set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${PARTITION_CSV_PATH})
- # partition_table_get_partition_info
- #
- # Get information about a partition from the partition table
- function(partition_table_get_partition_info result get_part_info_args part_info)
- separate_arguments(get_part_info_args)
- execute_process(COMMAND ${PYTHON}
- ${IDF_PATH}/components/partition_table/parttool.py -q
- --partition-table-offset ${PARTITION_TABLE_OFFSET}
- --partition-table-file ${PARTITION_CSV_PATH}
- ${get_part_info_args} get_partition_info --info ${part_info}
- OUTPUT_VARIABLE info
- RESULT_VARIABLE exit_code
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(NOT ${exit_code} EQUAL 0 AND NOT ${exit_code} EQUAL 1)
- # can't fail here as it would prevent the user from running 'menuconfig' again
- message(WARNING "parttool.py execution failed (${result}), problem with partition CSV file (see above)")
- endif()
- set(${result} ${info} PARENT_SCOPE)
- endfunction()
- endif()
|