build: bundle manifest to *.px4 file

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
Ramon Roche
2026-04-08 17:37:18 -07:00
parent ee056c1536
commit 80abad2baa
4 changed files with 154 additions and 278 deletions
+27 -2
View File
@@ -422,9 +422,31 @@ endif()
# create .px4 with parameter and airframe metadata
if (TARGET parameters_xml AND TARGET airframes_xml)
string(REPLACE ".elf" ".px4" fw_package ${PX4_BINARY_DIR}/${FW_NAME})
# Generate manifest object
set(MANIFEST_JSON ${PX4_BINARY_DIR}/manifest.json)
add_custom_command(
OUTPUT ${MANIFEST_JSON}
COMMAND
${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/manifest/gen_board_manifest_from_defconfig.py
--defconfig ${NUTTX_DEFCONFIG}
--manufacturer "${CONFIG_CDCACM_VENDORSTR}"
--productstr "${CONFIG_CDCACM_PRODUCTSTR}"
--target "${PX4_CONFIG}"
--arch "${CONFIG_ARCH}"
--name "${PX4_BOARD_NAME}"
--chip "${CONFIG_ARCH_CHIP}"
--vid "${CONFIG_CDCACM_VENDORID}"
--pid "${CONFIG_CDCACM_PRODUCTID}"
--out ${MANIFEST_JSON}
DEPENDS
${PX4_SOURCE_DIR}/Tools/manifest/gen_board_manifest_from_defconfig.py
${NUTTX_DEFCONFIG}
COMMENT "Generating board specific manifest from defconfig"
VERBATIM
)
add_custom_command(
OUTPUT ${fw_package}
COMMAND
@@ -433,11 +455,14 @@ if (TARGET parameters_xml AND TARGET airframes_xml)
--git_identity ${PX4_SOURCE_DIR}
--parameter_xml ${PX4_BINARY_DIR}/parameters.xml
--airframe_xml ${PX4_BINARY_DIR}/airframes.xml
--image ${PX4_BINARY_DIR}/${PX4_CONFIG}.bin > ${fw_package}
--image ${PX4_BINARY_DIR}/${PX4_CONFIG}.bin
--manifest_json ${MANIFEST_JSON}
> ${fw_package}
DEPENDS
${PX4_BINARY_DIR}/${PX4_CONFIG}.bin
airframes_xml
parameters_xml
${MANIFEST_JSON}
COMMENT "Creating ${fw_package}"
WORKING_DIRECTORY ${PX4_BINARY_DIR}
)