SITL jmavsim make airframes simulator specific

-cleanup and simplify jmavsim SITL launch and debug
This commit is contained in:
Daniel Agar
2023-01-07 17:00:35 -05:00
parent 760fff7d89
commit 95a6eba36c
9 changed files with 98 additions and 143 deletions
@@ -1,25 +1,48 @@
px4_add_git_submodule(TARGET git_jmavsim PATH "${PX4_SOURCE_DIR}/Tools/simulation/jmavsim/jMAVSim")
# create targets for each viewer/model/debugger combination
set(debuggers
none
gdb
lldb
valgrind
callgrind
)
find_program(JAVA_ANT_PATH "ant")
find_package(Java)
if(JAVA_ANT_PATH AND Java_JAVAC_EXECUTABLE AND Java_JAVA_EXECUTABLE)
include(UseJava)
find_jar(LIBVECMATH_JAR
"vecmath"
)
if(LIBVECMATH_JAR)
px4_add_git_submodule(TARGET git_jmavsim PATH "${PX4_SOURCE_DIR}/Tools/simulation/jmavsim/jMAVSim")
add_custom_target(jmavsim_run_symlink ALL
COMMAND ${CMAKE_COMMAND} -E create_symlink ${PX4_SOURCE_DIR}/Tools/simulation/jmavsim/jmavsim_run.sh ${PX4_BINARY_DIR}/rootfs/jmavsim_run.sh
BYPRODUCTS ${PX4_BINARY_DIR}/rootfs/jmavsim_run.sh
)
# build_jmavsim
add_custom_command(
OUTPUT ${PX4_SOURCE_DIR}/Tools/simulation/jmavsim/jMAVSim/out/production/jmavsim_run.jar
COMMAND ${JAVA_ANT_PATH} create_run_jar copy_res
WORKING_DIRECTORY ${PX4_SOURCE_DIR}/Tools/simulation/jmavsim/jMAVSim/
USES_TERMINAL
DEPENDS git_jmavsim jmavsim_run_symlink
COMMENT "building jMAVSim"
)
add_custom_target(build_jmavsim DEPENDS ${PX4_SOURCE_DIR}/Tools/simulation/jmavsim/jMAVSim/out/production/jmavsim_run.jar)
# launch helper
add_custom_target(jmavsim_iris
COMMAND ${CMAKE_COMMAND} -E env PX4_SYS_AUTOSTART=10017 $<TARGET_FILE:px4>
WORKING_DIRECTORY ${SITL_WORKING_DIR}
USES_TERMINAL
DEPENDS
px4 git_jmavsim build_jmavsim jmavsim_run_symlink
${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/init.d-posix/airframes/10017_jmavsim_iris
COMMENT "launching px4 jmavsim_iris (SYS_AUTOSTART=10017)"
)
add_custom_target(jmavsim DEPENDS jmavsim_iris) # alias
foreach(debugger ${debuggers})
if(debugger STREQUAL "none")
set(_targ_name "jmavsim")
else()
set(_targ_name "jmavsim_${debugger}")
#message(WARNING "jMAVSim requires vecmath.jar, which is not available in your system. Please install it.")
endif()
add_custom_target(${_targ_name}
COMMAND ${PX4_SOURCE_DIR}/Tools/simulation/jmavsim/sitl_run.sh $<TARGET_FILE:px4> ${debugger} ${PX4_SOURCE_DIR} ${PX4_BINARY_DIR}
WORKING_DIRECTORY ${SITL_WORKING_DIR}
USES_TERMINAL
DEPENDS px4 git_jmavsim
)
endforeach()
endif()