cmake: sitl_target sort lists and trim a few options

This commit is contained in:
Daniel Agar
2021-02-26 14:19:09 -05:00
parent da61938792
commit 33d12db580
+122 -112
View File
@@ -4,29 +4,20 @@ file(MAKE_DIRECTORY ${SITL_WORKING_DIR}/rootfs)
# add a symlink to the logs dir to make it easier to find them # add a symlink to the logs dir to make it easier to find them
add_custom_command(OUTPUT ${PX4_BINARY_DIR}/logs add_custom_command(OUTPUT ${PX4_BINARY_DIR}/logs
COMMAND ${CMAKE_COMMAND} -E create_symlink ${SITL_WORKING_DIR}/rootfs/log logs COMMAND ${CMAKE_COMMAND} -E create_symlink ${SITL_WORKING_DIR}/rootfs/log logs
WORKING_DIRECTORY ${PX4_BINARY_DIR}) WORKING_DIRECTORY ${PX4_BINARY_DIR}
)
add_custom_target(logs_symlink DEPENDS ${PX4_BINARY_DIR}/logs) add_custom_target(logs_symlink DEPENDS ${PX4_BINARY_DIR}/logs)
add_dependencies(px4 logs_symlink) add_dependencies(px4 logs_symlink)
add_custom_target(run_config add_custom_target(run_config
COMMAND Tools/sitl_run.sh COMMAND Tools/sitl_run.sh $<TARGET_FILE:px4> ${config_sitl_debugger} ${config_sitl_viewer} ${config_sitl_model} ${PX4_SOURCE_DIR} ${PX4_BINARY_DIR}
$<TARGET_FILE:px4> WORKING_DIRECTORY ${SITL_WORKING_DIR}
${config_sitl_debugger} USES_TERMINAL
${config_sitl_viewer} DEPENDS px4 logs_symlink
${config_sitl_model} )
${PX4_SOURCE_DIR}
${PX4_BINARY_DIR}
WORKING_DIRECTORY ${SITL_WORKING_DIR}
USES_TERMINAL
DEPENDS px4 logs_symlink
)
px4_add_git_submodule(TARGET git_gazebo PATH "${PX4_SOURCE_DIR}/Tools/sitl_gazebo")
px4_add_git_submodule(TARGET git_jmavsim PATH "${PX4_SOURCE_DIR}/Tools/jMAVSim") px4_add_git_submodule(TARGET git_jmavsim PATH "${PX4_SOURCE_DIR}/Tools/jMAVSim")
px4_add_git_submodule(TARGET git_flightgear_bridge PATH "${PX4_SOURCE_DIR}/Tools/flightgear_bridge")
px4_add_git_submodule(TARGET git_jsbsim_bridge PATH "${PX4_SOURCE_DIR}/Tools/jsbsim_bridge")
# Add support for external project building # Add support for external project building
include(ExternalProject) include(ExternalProject)
@@ -40,6 +31,7 @@ if(N GREATER_EQUAL 4)
endif() endif()
# project to build sitl_gazebo if necessary # project to build sitl_gazebo if necessary
px4_add_git_submodule(TARGET git_gazebo PATH "${PX4_SOURCE_DIR}/Tools/sitl_gazebo")
ExternalProject_Add(sitl_gazebo ExternalProject_Add(sitl_gazebo
SOURCE_DIR ${PX4_SOURCE_DIR}/Tools/sitl_gazebo SOURCE_DIR ${PX4_SOURCE_DIR}/Tools/sitl_gazebo
CMAKE_ARGS CMAKE_ARGS
@@ -47,8 +39,7 @@ ExternalProject_Add(sitl_gazebo
-DSEND_ODOMETRY_DATA=ON -DSEND_ODOMETRY_DATA=ON
BINARY_DIR ${PX4_BINARY_DIR}/build_gazebo BINARY_DIR ${PX4_BINARY_DIR}/build_gazebo
INSTALL_COMMAND "" INSTALL_COMMAND ""
DEPENDS DEPENDS git_gazebo
git_gazebo
USES_TERMINAL_CONFIGURE true USES_TERMINAL_CONFIGURE true
USES_TERMINAL_BUILD true USES_TERMINAL_BUILD true
EXCLUDE_FROM_ALL true EXCLUDE_FROM_ALL true
@@ -58,8 +49,7 @@ ExternalProject_Add(sitl_gazebo
ExternalProject_Add(mavsdk_tests ExternalProject_Add(mavsdk_tests
SOURCE_DIR ${PX4_SOURCE_DIR}/test/mavsdk_tests SOURCE_DIR ${PX4_SOURCE_DIR}/test/mavsdk_tests
CMAKE_ARGS CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
BINARY_DIR ${PX4_BINARY_DIR}/mavsdk_tests BINARY_DIR ${PX4_BINARY_DIR}/mavsdk_tests
INSTALL_COMMAND "" INSTALL_COMMAND ""
USES_TERMINAL_CONFIGURE true USES_TERMINAL_CONFIGURE true
@@ -68,28 +58,26 @@ ExternalProject_Add(mavsdk_tests
BUILD_ALWAYS 1 BUILD_ALWAYS 1
) )
px4_add_git_submodule(TARGET git_flightgear_bridge PATH "${PX4_SOURCE_DIR}/Tools/flightgear_bridge")
ExternalProject_Add(flightgear_bridge ExternalProject_Add(flightgear_bridge
SOURCE_DIR ${PX4_SOURCE_DIR}/Tools/flightgear_bridge SOURCE_DIR ${PX4_SOURCE_DIR}/Tools/flightgear_bridge
CMAKE_ARGS CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
BINARY_DIR ${PX4_BINARY_DIR}/build_flightgear_bridge BINARY_DIR ${PX4_BINARY_DIR}/build_flightgear_bridge
INSTALL_COMMAND "" INSTALL_COMMAND ""
DEPENDS DEPENDS git_flightgear_bridge
git_flightgear_bridge
USES_TERMINAL_CONFIGURE true USES_TERMINAL_CONFIGURE true
USES_TERMINAL_BUILD true USES_TERMINAL_BUILD true
EXCLUDE_FROM_ALL true EXCLUDE_FROM_ALL true
BUILD_ALWAYS 1 BUILD_ALWAYS 1
) )
px4_add_git_submodule(TARGET git_jsbsim_bridge PATH "${PX4_SOURCE_DIR}/Tools/jsbsim_bridge")
ExternalProject_Add(jsbsim_bridge ExternalProject_Add(jsbsim_bridge
SOURCE_DIR ${PX4_SOURCE_DIR}/Tools/jsbsim_bridge SOURCE_DIR ${PX4_SOURCE_DIR}/Tools/jsbsim_bridge
CMAKE_ARGS CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
BINARY_DIR ${PX4_BINARY_DIR}/build_jsbsim_bridge BINARY_DIR ${PX4_BINARY_DIR}/build_jsbsim_bridge
INSTALL_COMMAND "" INSTALL_COMMAND ""
DEPENDS DEPENDS git_jsbsim_bridge
git_jsbsim_bridge
USES_TERMINAL_CONFIGURE true USES_TERMINAL_CONFIGURE true
USES_TERMINAL_BUILD true USES_TERMINAL_BUILD true
EXCLUDE_FROM_ALL true EXCLUDE_FROM_ALL true
@@ -97,29 +85,79 @@ ExternalProject_Add(jsbsim_bridge
) )
# create targets for each viewer/model/debugger combination # create targets for each viewer/model/debugger combination
set(viewers none jmavsim gazebo) set(viewers
set(debuggers none ide gdb lldb ddd valgrind callgrind) none
set(models none shell jmavsim
if750a iris iris_dual_gps iris_opt_flow iris_opt_flow_mockup iris_vision iris_rplidar iris_irlock iris_ctrlalloc iris_obs_avoid iris_rtps px4vision solo typhoon_h480 gazebo
plane plane_cam plane_catapult plane_lidar techpod )
standard_vtol tailsitter tiltrotor
rover r1_rover boat cloudship nxp_cupcar set(debuggers
uuv_hippocampus uuv_bluerov2_heavy) none
set(worlds none empty baylands ksql_airport mcmillan_airfield sonoma_raceway warehouse windy yosemite) gdb
lldb
valgrind
callgrind
)
set(models
none
boat
cloudship
if750a
iris
iris_ctrlalloc
iris_dual_gps
iris_irlock
iris_obs_avoid
iris_opt_flow
iris_opt_flow_mockup
iris_rplidar
iris_rtps px4vision
iris_vision
nxp_cupcar
plane
plane_cam
plane_catapult
plane_lidar
r1_rover
rover
shell
solo
standard_vtol
tailsitter
techpod
tiltrotor
typhoon_h480
uuv_bluerov2_heavy
uuv_hippocampus
)
set(worlds
none
baylands
empty
ksql_airport
mcmillan_airfield
sonoma_raceway
warehouse
windy
yosemite
)
set(all_posix_vmd_make_targets) set(all_posix_vmd_make_targets)
foreach(viewer ${viewers}) foreach(viewer ${viewers})
foreach(debugger ${debuggers}) foreach(debugger ${debuggers})
foreach(model ${models}) foreach(model ${models})
foreach(world ${worlds}) foreach(world ${worlds})
if (world STREQUAL "none") if(world STREQUAL "none")
if (debugger STREQUAL "none") if(debugger STREQUAL "none")
if (model STREQUAL "none") if(model STREQUAL "none")
set(_targ_name "${viewer}") set(_targ_name "${viewer}")
else() else()
set(_targ_name "${viewer}_${model}") set(_targ_name "${viewer}_${model}")
endif() endif()
else() else()
if (model STREQUAL "none") if(model STREQUAL "none")
set(_targ_name "${viewer}___${debugger}") set(_targ_name "${viewer}___${debugger}")
else() else()
set(_targ_name "${viewer}_${model}_${debugger}") set(_targ_name "${viewer}_${model}_${debugger}")
@@ -127,35 +165,27 @@ foreach(viewer ${viewers})
endif() endif()
add_custom_target(${_targ_name} add_custom_target(${_targ_name}
COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh $<TARGET_FILE:px4> ${debugger} ${viewer} ${model} ${world} ${PX4_SOURCE_DIR} ${PX4_BINARY_DIR}
$<TARGET_FILE:px4>
${debugger}
${viewer}
${model}
${world}
${PX4_SOURCE_DIR}
${PX4_BINARY_DIR}
WORKING_DIRECTORY ${SITL_WORKING_DIR} WORKING_DIRECTORY ${SITL_WORKING_DIR}
USES_TERMINAL USES_TERMINAL
DEPENDS DEPENDS logs_symlink
logs_symlink
) )
list(APPEND all_posix_vmd_make_targets ${_targ_name}) list(APPEND all_posix_vmd_make_targets ${_targ_name})
if (viewer STREQUAL "gazebo") if(viewer STREQUAL "gazebo")
add_dependencies(${_targ_name} px4 sitl_gazebo) add_dependencies(${_targ_name} px4 sitl_gazebo)
elseif(viewer STREQUAL "jmavsim") elseif(viewer STREQUAL "jmavsim")
add_dependencies(${_targ_name} px4 git_jmavsim) add_dependencies(${_targ_name} px4 git_jmavsim)
endif() endif()
else() else()
if (viewer STREQUAL "gazebo") if(viewer STREQUAL "gazebo")
if (debugger STREQUAL "none") if(debugger STREQUAL "none")
if (model STREQUAL "none") if(model STREQUAL "none")
set(_targ_name "${viewer}___${world}") set(_targ_name "${viewer}___${world}")
else() else()
set(_targ_name "${viewer}_${model}__${world}") set(_targ_name "${viewer}_${model}__${world}")
endif() endif()
else() else()
if (model STREQUAL "none") if(model STREQUAL "none")
set(_targ_name "${viewer}__${debugger}_${world}") set(_targ_name "${viewer}__${debugger}_${world}")
else() else()
set(_targ_name "${viewer}_${model}_${debugger}_${world}") set(_targ_name "${viewer}_${model}_${debugger}_${world}")
@@ -163,14 +193,7 @@ foreach(viewer ${viewers})
endif() endif()
add_custom_target(${_targ_name} add_custom_target(${_targ_name}
COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh $<TARGET_FILE:px4> ${debugger} ${viewer} ${model} ${world} ${PX4_SOURCE_DIR} ${PX4_BINARY_DIR}
$<TARGET_FILE:px4>
${debugger}
${viewer}
${model}
${world}
${PX4_SOURCE_DIR}
${PX4_BINARY_DIR}
WORKING_DIRECTORY ${SITL_WORKING_DIR} WORKING_DIRECTORY ${SITL_WORKING_DIR}
USES_TERMINAL USES_TERMINAL
DEPENDS logs_symlink DEPENDS logs_symlink
@@ -185,20 +208,31 @@ foreach(viewer ${viewers})
endforeach() endforeach()
# create targets for jsbsim # create targets for jsbsim
set(models_jsbsim none rascal quadrotor_x hexarotor_x malolo) set(models_jsbsim
set(worlds_jsbsim none LSZH) none
rascal
quadrotor_x
hexarotor_x
malolo
)
set(worlds_jsbsim
none
LSZH
)
foreach(debugger ${debuggers}) foreach(debugger ${debuggers})
foreach(model ${models_jsbsim}) foreach(model ${models_jsbsim})
foreach(world ${worlds_jsbsim}) foreach(world ${worlds_jsbsim})
if (world STREQUAL "none") if(world STREQUAL "none")
if (debugger STREQUAL "none") if(debugger STREQUAL "none")
if (model STREQUAL "none") if(model STREQUAL "none")
set(_targ_name "jsbsim") set(_targ_name "jsbsim")
else() else()
set(_targ_name "jsbsim_${model}") set(_targ_name "jsbsim_${model}")
endif() endif()
else() else()
if (model STREQUAL "none") if(model STREQUAL "none")
set(_targ_name "jsbsim__${debugger}_${world}") set(_targ_name "jsbsim__${debugger}_${world}")
else() else()
set(_targ_name "jsbsim_${model}_${debugger}_${world}") set(_targ_name "jsbsim_${model}_${debugger}_${world}")
@@ -206,30 +240,22 @@ foreach(debugger ${debuggers})
endif() endif()
add_custom_target(${_targ_name} add_custom_target(${_targ_name}
COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh $<TARGET_FILE:px4> ${debugger} jsbsim ${model} "LSZH" ${PX4_SOURCE_DIR} ${PX4_BINARY_DIR}
$<TARGET_FILE:px4> WORKING_DIRECTORY ${SITL_WORKING_DIR}
${debugger} USES_TERMINAL
jsbsim DEPENDS logs_symlink
${model}
"LSZH"
${PX4_SOURCE_DIR}
${PX4_BINARY_DIR}
WORKING_DIRECTORY ${SITL_WORKING_DIR}
USES_TERMINAL
DEPENDS
logs_symlink
) )
list(APPEND all_posix_vmd_make_targets ${_targ_name}) list(APPEND all_posix_vmd_make_targets ${_targ_name})
add_dependencies(${_targ_name} px4 jsbsim_bridge) add_dependencies(${_targ_name} px4 jsbsim_bridge)
else() else()
if (debugger STREQUAL "none") if(debugger STREQUAL "none")
if (model STREQUAL "none") if(model STREQUAL "none")
set(_targ_name "jsbsim___${world}") set(_targ_name "jsbsim___${world}")
else() else()
set(_targ_name "jsbsim_${model}__${world}") set(_targ_name "jsbsim_${model}__${world}")
endif() endif()
else() else()
if (model STREQUAL "none") if(model STREQUAL "none")
set(_targ_name "jsbsim___${debugger}_${world}") set(_targ_name "jsbsim___${debugger}_${world}")
else() else()
set(_targ_name "jsbsim_${model}_${debugger}_${world}") set(_targ_name "jsbsim_${model}_${debugger}_${world}")
@@ -237,18 +263,10 @@ foreach(debugger ${debuggers})
endif() endif()
add_custom_target(${_targ_name} add_custom_target(${_targ_name}
COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh $<TARGET_FILE:px4> ${debugger} jsbsim ${model} ${world} ${PX4_SOURCE_DIR} ${PX4_BINARY_DIR}
$<TARGET_FILE:px4> WORKING_DIRECTORY ${SITL_WORKING_DIR}
${debugger} USES_TERMINAL
jsbsim DEPENDS logs_symlink
${model}
${world}
${PX4_SOURCE_DIR}
${PX4_BINARY_DIR}
WORKING_DIRECTORY ${SITL_WORKING_DIR}
USES_TERMINAL
DEPENDS
logs_symlink
) )
list(APPEND all_posix_vmd_make_targets ${_targ_name}) list(APPEND all_posix_vmd_make_targets ${_targ_name})
add_dependencies(${_targ_name} px4 jsbsim_bridge) add_dependencies(${_targ_name} px4 jsbsim_bridge)
@@ -257,32 +275,24 @@ foreach(debugger ${debuggers})
endforeach() endforeach()
endforeach() endforeach()
#add flighgear targets # add flighgear targets
if( ENABLE_LOCKSTEP_SCHEDULER STREQUAL "no") if(ENABLE_LOCKSTEP_SCHEDULER STREQUAL "no")
set(models set(models
rascal rascal
rascal-electric rascal-electric
tf-g1 tf-g1
tf-r1 tf-r1
) )
set(all_posix_vmd_make_targets) set(all_posix_vmd_make_targets)
foreach(model ${models}) foreach(model ${models})
set(_targ_name "flightgear_${model}") set(_targ_name "flightgear_${model}")
add_custom_target(${_targ_name} add_custom_target(${_targ_name}
COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh $<TARGET_FILE:px4> none flightgear ${model} none ${PX4_SOURCE_DIR} ${PX4_BINARY_DIR}
$<TARGET_FILE:px4>
none
flightgear
${model}
none
${PX4_SOURCE_DIR}
${PX4_BINARY_DIR}
WORKING_DIRECTORY ${SITL_WORKING_DIR} WORKING_DIRECTORY ${SITL_WORKING_DIR}
USES_TERMINAL USES_TERMINAL
DEPENDS DEPENDS logs_symlink
logs_symlink )
)
add_dependencies(${_targ_name} px4 flightgear_bridge) add_dependencies(${_targ_name} px4 flightgear_bridge)
list(APPEND all_posix_vmd_make_targets ${_targ_name}) list(APPEND all_posix_vmd_make_targets ${_targ_name})