Browse Source

Fixed param dependencies.

sbg
James Goppert 9 years ago
parent
commit
4dd59cd09a
  1. 4
      CMakeLists.txt
  2. 94
      cmake/common/px4_base.cmake
  3. 4
      cmake/configs/nuttx_px4fmu-v1_default.cmake
  4. 4
      cmake/configs/nuttx_px4fmu-v2_default.cmake
  5. 4
      cmake/configs/nuttx_px4fmu-v2_simple.cmake
  6. 4
      cmake/configs/nuttx_sim_simple.cmake
  7. 5
      cmake/configs/posix_sitl_simple.cmake
  8. 60
      cmake/nuttx/px4_impl_nuttx.cmake
  9. 3
      src/firmware/nuttx/CMakeLists.txt
  10. 9
      src/modules/param/CMakeLists.txt

4
CMakeLists.txt

@ -271,6 +271,10 @@ px4_generate_messages(TARGET msg_gen @@ -271,6 +271,10 @@ px4_generate_messages(TARGET msg_gen
OS ${OS}
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

94
cmake/common/px4_base.cmake

@ -706,24 +706,62 @@ endfunction() @@ -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.
#
# 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:
# OUT : the generate source files
# OUT : the generated source files
#
# 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(
NAME px4_generate_parameters
ONE_VALUE OUT
REQUIRED OUT
NAME px4_generate_parameters_source
ONE_VALUE OUT XML DEPS
REQUIRED OUT XML
ARGN ${ARGN})
set(generated_files
${CMAKE_CURRENT_BINARY_DIR}/px4_parameters.h
@ -731,14 +769,46 @@ function(px4_generate_parameters) @@ -731,14 +769,46 @@ function(px4_generate_parameters)
set_source_files_properties(${generated_files}
PROPERTIES GENERATED TRUE)
add_custom_command(OUTPUT ${generated_files}
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_process_params.py
-s ${CMAKE_SOURCE_DIR}/src --board CONFIG_ARCH_${BOARD} --xml
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_generate_params.py
parameters.xml
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_generate_params.py ${XML}
DEPENDS ${XML} ${DEPS}
)
set(${OUT} ${generated_files} PARENT_SCOPE)
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

4
cmake/configs/nuttx_px4fmu-v1_default.cmake

@ -152,10 +152,6 @@ set(config_module_list @@ -152,10 +152,6 @@ set(config_module_list
#examples/hwtest
)
set(config_firmware_options
PARAM_XML # generate param xml
)
set(config_extra_builtin_cmds
serdis
sercon

4
cmake/configs/nuttx_px4fmu-v2_default.cmake

@ -156,10 +156,6 @@ set(config_module_list @@ -156,10 +156,6 @@ set(config_module_list
#examples/hwtest
)
set(config_firmware_options
PARAM_XML # generate param xml
)
set(config_extra_builtin_cmds
serdis
sercon

4
cmake/configs/nuttx_px4fmu-v2_simple.cmake

@ -117,10 +117,6 @@ set(config_module_list @@ -117,10 +117,6 @@ set(config_module_list
examples/hwtest
)
set(config_firmware_options
PARAM_XML # generate param xml
)
set(config_extra_builtin_cmds
serdis
sercon

4
cmake/configs/nuttx_sim_simple.cmake

@ -17,9 +17,5 @@ set(config_module_list @@ -17,9 +17,5 @@ set(config_module_list
#lib/conversion
)
set(config_firmware_options
PARAM_XML # generate param xml
)
set(config_extra_builtin_cmds
)

5
cmake/configs/posix_sitl_simple.cmake

@ -57,11 +57,6 @@ set(config_module_list @@ -57,11 +57,6 @@ set(config_module_list
lib/launchdetection
)
set(config_firmware_options
PARAM_XML # generate param xml
)
set(config_extra_builtin_cmds
serdis
sercon

60
cmake/nuttx/px4_impl_nuttx.cmake

@ -57,14 +57,14 @@ include(common/px4_base) @@ -57,14 +57,14 @@ include(common/px4_base)
# This function adds a nuttx firmware target.
#
# 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:
# EXE : the executable to generate the firmware from
# BOARD : the board
#
# Options:
# PARAM_XML : toggles generation of param_xml
# PARAM_XML : param xml file (optional)
# AIRFRAMES_XML : airframes xml file (optional)
#
# Output:
# OUT : the generated firmware target
@ -75,43 +75,33 @@ include(common/px4_base) @@ -75,43 +75,33 @@ include(common/px4_base)
function(px4_nuttx_add_firmware)
px4_parse_function_args(
NAME px4_nuttx_add_firmware
ONE_VALUE BOARD OUT EXE
OPTIONS PARAM_XML
ONE_VALUE BOARD OUT EXE PARAM_XML AIRFRAMES_XML
REQUIRED OUT EXE BOARD
ARGN ${ARGN})
set(process_params ${CMAKE_SOURCE_DIR}/Tools/px_process_params.py)
set(process_airframes ${CMAKE_SOURCE_DIR}/Tools/px_process_airframes.py)
#TODO handle param_xml
if(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}
set(extra_args)
if (PARAM_XML)
list(APPEND extra_args
--parameter_xml ${PARAM_XML}
)
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()
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})
endfunction()

3
src/firmware/nuttx/CMakeLists.txt

@ -57,7 +57,8 @@ if(NOT ${BOARD} STREQUAL "sim") @@ -57,7 +57,8 @@ if(NOT ${BOARD} STREQUAL "sim")
px4_nuttx_add_firmware(OUT ${fw_file}
BOARD ${BOARD}
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)

9
src/modules/param/CMakeLists.txt

@ -33,17 +33,16 @@ @@ -33,17 +33,16 @@
include_directories(${CMAKE_CURRENT_BINARY_DIR})
px4_generate_parameters(OUT param_files)
set(srcs
${param_files}
px4_generate_parameters_source(OUT param_files
XML ${CMAKE_BINARY_DIR}/parameters.xml
DEPS xml_gen
)
px4_add_module(
MODULE modules__param
COMPILE_FLAGS
-Os
SRCS ${srcs}
SRCS ${param_files}
DEPENDS
platforms__common
)

Loading…
Cancel
Save