mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-09-25 23:55:28 +08:00
Fixed param dependencies.
This commit is contained in:
@@ -271,6 +271,10 @@ px4_generate_messages(TARGET msg_gen
|
|||||||
OS ${OS}
|
OS ${OS}
|
||||||
DEPENDS git_genmsg git_gencpp
|
DEPENDS git_genmsg git_gencpp
|
||||||
)
|
)
|
||||||
|
px4_generate_parameters_xml(OUT parameters.xml BOARD ${BOARD})
|
||||||
|
px4_generate_airframes_xml(OUT airframes.xml BOARD ${BOARD})
|
||||||
|
add_custom_target(xml_gen
|
||||||
|
DEPENDS parameters.xml airframes.xml)
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# external projects
|
# external projects
|
||||||
|
|||||||
+82
-12
@@ -706,24 +706,62 @@ endfunction()
|
|||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
#
|
#
|
||||||
# px4_generate_parameters
|
# px4_generate_parameters_xml
|
||||||
|
#
|
||||||
|
# Generates a parameters.xml file.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# px4_generate_parameters_xml(OUT <param-xml_file>)
|
||||||
|
#
|
||||||
|
# Input:
|
||||||
|
# BOARD : the board
|
||||||
|
#
|
||||||
|
# Output:
|
||||||
|
# OUT : the generated xml file
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# px4_generate_parameters_xml(OUT parameters.xml)
|
||||||
|
#
|
||||||
|
function(px4_generate_parameters_xml)
|
||||||
|
px4_parse_function_args(
|
||||||
|
NAME px4_generate_parameters_xml
|
||||||
|
ONE_VALUE OUT BOARD
|
||||||
|
REQUIRED OUT BOARD
|
||||||
|
ARGN ${ARGN})
|
||||||
|
set(path ${CMAKE_SOURCE_DIR}/src)
|
||||||
|
file(GLOB_RECURSE param_src_files ${path}/*.h* ${path}/*.c*)
|
||||||
|
add_custom_command(OUTPUT ${OUT}
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_process_params.py
|
||||||
|
-s ${path} --board CONFIG_ARCH_${BOARD} --xml
|
||||||
|
DEPENDS ${param_src_files}
|
||||||
|
)
|
||||||
|
set(${OUT} ${${OUT}} PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
#
|
||||||
|
# px4_generate_parameters_source
|
||||||
#
|
#
|
||||||
# Generates a source file with all parameters.
|
# Generates a source file with all parameters.
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# px4_generate_parameters(OUT <list-source-files>)
|
# px4_generate_parameters_source(OUT <list-source-files> XML <param-xml-file>)
|
||||||
|
#
|
||||||
|
# Input:
|
||||||
|
# XML : the parameters.xml file
|
||||||
|
# DEPS : target dependencies
|
||||||
#
|
#
|
||||||
# Output:
|
# Output:
|
||||||
# OUT : the generate source files
|
# OUT : the generated source files
|
||||||
#
|
#
|
||||||
# Example:
|
# Example:
|
||||||
# px4_generate_parameters(OUT parameters.c)
|
# px4_generate_parameters_source(OUT param_files XML parameters.xml)
|
||||||
#
|
#
|
||||||
function(px4_generate_parameters)
|
function(px4_generate_parameters_source)
|
||||||
px4_parse_function_args(
|
px4_parse_function_args(
|
||||||
NAME px4_generate_parameters
|
NAME px4_generate_parameters_source
|
||||||
ONE_VALUE OUT
|
ONE_VALUE OUT XML DEPS
|
||||||
REQUIRED OUT
|
REQUIRED OUT XML
|
||||||
ARGN ${ARGN})
|
ARGN ${ARGN})
|
||||||
set(generated_files
|
set(generated_files
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/px4_parameters.h
|
${CMAKE_CURRENT_BINARY_DIR}/px4_parameters.h
|
||||||
@@ -731,14 +769,46 @@ function(px4_generate_parameters)
|
|||||||
set_source_files_properties(${generated_files}
|
set_source_files_properties(${generated_files}
|
||||||
PROPERTIES GENERATED TRUE)
|
PROPERTIES GENERATED TRUE)
|
||||||
add_custom_command(OUTPUT ${generated_files}
|
add_custom_command(OUTPUT ${generated_files}
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_process_params.py
|
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_generate_params.py ${XML}
|
||||||
-s ${CMAKE_SOURCE_DIR}/src --board CONFIG_ARCH_${BOARD} --xml
|
DEPENDS ${XML} ${DEPS}
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_generate_params.py
|
|
||||||
parameters.xml
|
|
||||||
)
|
)
|
||||||
set(${OUT} ${generated_files} PARENT_SCOPE)
|
set(${OUT} ${generated_files} PARENT_SCOPE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
#
|
||||||
|
# px4_generate_airframes_xml
|
||||||
|
#
|
||||||
|
# Generates airframes.xml
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# px4_generate_airframes_xml(OUT <airframe-xml-file>)
|
||||||
|
#
|
||||||
|
# Input:
|
||||||
|
# XML : the airframes.xml file
|
||||||
|
# BOARD : the board
|
||||||
|
#
|
||||||
|
# Output:
|
||||||
|
# OUT : the generated source files
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# px4_generate_airframes_xml(OUT airframes.xml)
|
||||||
|
#
|
||||||
|
function(px4_generate_airframes_xml)
|
||||||
|
px4_parse_function_args(
|
||||||
|
NAME px4_generate_airframes_xml
|
||||||
|
ONE_VALUE OUT BOARD
|
||||||
|
REQUIRED OUT BOARD
|
||||||
|
ARGN ${ARGN})
|
||||||
|
set(process_airframes ${CMAKE_SOURCE_DIR}/Tools/px_process_airframes.py)
|
||||||
|
add_custom_command(OUTPUT ${OUT}
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${process_airframes}
|
||||||
|
-a ${CMAKE_SOURCE_DIR}/ROMFS/px4fmu_common/init.d
|
||||||
|
--board CONFIG_ARCH_BOARD_${BOARD} --xml
|
||||||
|
)
|
||||||
|
set(${OUT} ${${OUT}} PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
#
|
#
|
||||||
# px4_copy_tracked
|
# px4_copy_tracked
|
||||||
|
|||||||
@@ -152,10 +152,6 @@ set(config_module_list
|
|||||||
#examples/hwtest
|
#examples/hwtest
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_firmware_options
|
|
||||||
PARAM_XML # generate param xml
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_extra_builtin_cmds
|
set(config_extra_builtin_cmds
|
||||||
serdis
|
serdis
|
||||||
sercon
|
sercon
|
||||||
|
|||||||
@@ -156,10 +156,6 @@ set(config_module_list
|
|||||||
#examples/hwtest
|
#examples/hwtest
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_firmware_options
|
|
||||||
PARAM_XML # generate param xml
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_extra_builtin_cmds
|
set(config_extra_builtin_cmds
|
||||||
serdis
|
serdis
|
||||||
sercon
|
sercon
|
||||||
|
|||||||
@@ -117,10 +117,6 @@ set(config_module_list
|
|||||||
examples/hwtest
|
examples/hwtest
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_firmware_options
|
|
||||||
PARAM_XML # generate param xml
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_extra_builtin_cmds
|
set(config_extra_builtin_cmds
|
||||||
serdis
|
serdis
|
||||||
sercon
|
sercon
|
||||||
|
|||||||
@@ -17,9 +17,5 @@ set(config_module_list
|
|||||||
#lib/conversion
|
#lib/conversion
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_firmware_options
|
|
||||||
PARAM_XML # generate param xml
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_extra_builtin_cmds
|
set(config_extra_builtin_cmds
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -57,11 +57,6 @@ set(config_module_list
|
|||||||
lib/launchdetection
|
lib/launchdetection
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
set(config_firmware_options
|
|
||||||
PARAM_XML # generate param xml
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_extra_builtin_cmds
|
set(config_extra_builtin_cmds
|
||||||
serdis
|
serdis
|
||||||
sercon
|
sercon
|
||||||
|
|||||||
@@ -57,14 +57,14 @@ include(common/px4_base)
|
|||||||
# This function adds a nuttx firmware target.
|
# This function adds a nuttx firmware target.
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# px4_nuttx_add_firmware(OUT <out-target> EXE <in-executable>)
|
# px4_nuttx_add_firmware(OUT <out-target> EXE <in-executable>
|
||||||
|
# PARAM_XML <param_xml> AIRFRAMES_XML <airframes_xml>)
|
||||||
#
|
#
|
||||||
# Input:
|
# Input:
|
||||||
# EXE : the executable to generate the firmware from
|
# EXE : the executable to generate the firmware from
|
||||||
# BOARD : the board
|
# BOARD : the board
|
||||||
#
|
# PARAM_XML : param xml file (optional)
|
||||||
# Options:
|
# AIRFRAMES_XML : airframes xml file (optional)
|
||||||
# PARAM_XML : toggles generation of param_xml
|
|
||||||
#
|
#
|
||||||
# Output:
|
# Output:
|
||||||
# OUT : the generated firmware target
|
# OUT : the generated firmware target
|
||||||
@@ -75,43 +75,33 @@ include(common/px4_base)
|
|||||||
function(px4_nuttx_add_firmware)
|
function(px4_nuttx_add_firmware)
|
||||||
px4_parse_function_args(
|
px4_parse_function_args(
|
||||||
NAME px4_nuttx_add_firmware
|
NAME px4_nuttx_add_firmware
|
||||||
ONE_VALUE BOARD OUT EXE
|
ONE_VALUE BOARD OUT EXE PARAM_XML AIRFRAMES_XML
|
||||||
OPTIONS PARAM_XML
|
|
||||||
REQUIRED OUT EXE BOARD
|
REQUIRED OUT EXE BOARD
|
||||||
ARGN ${ARGN})
|
ARGN ${ARGN})
|
||||||
|
|
||||||
set(process_params ${CMAKE_SOURCE_DIR}/Tools/px_process_params.py)
|
set(extra_args)
|
||||||
set(process_airframes ${CMAKE_SOURCE_DIR}/Tools/px_process_airframes.py)
|
|
||||||
|
|
||||||
|
if (PARAM_XML)
|
||||||
#TODO handle param_xml
|
list(APPEND extra_args
|
||||||
if(PARAM_XML)
|
--parameter_xml ${PARAM_XML}
|
||||||
add_custom_command(OUTPUT ${OUT}
|
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${process_params}
|
|
||||||
--src-path ${CMAKE_SOURCE_DIR}/src
|
|
||||||
--board CONFIG_ARCH_BOARD_${BOARD} --xml
|
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${process_airframes}
|
|
||||||
-a ${CMAKE_SOURCE_DIR}/ROMFS/px4fmu_common/init.d
|
|
||||||
--board CONFIG_ARCH_BOARD_${BOARD} --xml
|
|
||||||
COMMAND ${OBJCOPY} -O binary ${EXE} ${EXE}.bin
|
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_mkfw.py
|
|
||||||
--prototype ${CMAKE_SOURCE_DIR}/Images/${BOARD}.prototype
|
|
||||||
--git_identity ${CMAKE_SOURCE_DIR}
|
|
||||||
--parameter_xml parameters.xml
|
|
||||||
--airframe_xml airframes.xml
|
|
||||||
--image ${EXE}.bin > ${OUT}
|
|
||||||
DEPENDS ${EXE}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
add_custom_command(OUTPUT ${OUT}
|
|
||||||
COMMAND ${OBJCOPY} -O binary ${EXE} ${EXE}.bin
|
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_mkfw.py
|
|
||||||
--prototype ${CMAKE_SOURCE_DIR}/Images/${BOARD}.prototype
|
|
||||||
--git_identity ${CMAKE_SOURCE_DIR}
|
|
||||||
--image ${EXE}.bin > ${OUT}
|
|
||||||
DEPENDS ${EXE}
|
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (AIRFRAMES_XML)
|
||||||
|
list(APPEND extra_args
|
||||||
|
--airframe_xml ${AIRFRAMES_XML}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${OUT}
|
||||||
|
COMMAND ${OBJCOPY} -O binary ${EXE} ${EXE}.bin
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_mkfw.py
|
||||||
|
--prototype ${CMAKE_SOURCE_DIR}/Images/${BOARD}.prototype
|
||||||
|
--git_identity ${CMAKE_SOURCE_DIR}
|
||||||
|
${extra_args}
|
||||||
|
--image ${EXE}.bin > ${OUT}
|
||||||
|
DEPENDS ${EXE}
|
||||||
|
)
|
||||||
add_custom_target(build_firmware_${BOARD} ALL DEPENDS ${OUT})
|
add_custom_target(build_firmware_${BOARD} ALL DEPENDS ${OUT})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,8 @@ if(NOT ${BOARD} STREQUAL "sim")
|
|||||||
px4_nuttx_add_firmware(OUT ${fw_file}
|
px4_nuttx_add_firmware(OUT ${fw_file}
|
||||||
BOARD ${BOARD}
|
BOARD ${BOARD}
|
||||||
EXE ${CMAKE_CURRENT_BINARY_DIR}/firmware_nuttx
|
EXE ${CMAKE_CURRENT_BINARY_DIR}/firmware_nuttx
|
||||||
${config_firmware_options}
|
PARAM_XML ${CMAKE_BINARY_DIR}/parameters.xml
|
||||||
|
AIRFRAMES_XML ${CMAKE_BINARY_DIR}/airframes.xml
|
||||||
)
|
)
|
||||||
|
|
||||||
configure_file(gdbinit.in .gdbinit)
|
configure_file(gdbinit.in .gdbinit)
|
||||||
|
|||||||
@@ -33,17 +33,16 @@
|
|||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
px4_generate_parameters(OUT param_files)
|
px4_generate_parameters_source(OUT param_files
|
||||||
|
XML ${CMAKE_BINARY_DIR}/parameters.xml
|
||||||
set(srcs
|
DEPS xml_gen
|
||||||
${param_files}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
px4_add_module(
|
px4_add_module(
|
||||||
MODULE modules__param
|
MODULE modules__param
|
||||||
COMPILE_FLAGS
|
COMPILE_FLAGS
|
||||||
-Os
|
-Os
|
||||||
SRCS ${srcs}
|
SRCS ${param_files}
|
||||||
DEPENDS
|
DEPENDS
|
||||||
platforms__common
|
platforms__common
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user