cmake: ensure generated source files exist before extracting events

Only needed for Makefile-based builds:
gmake[3]: *** No rule to make target 'src/modules/flight_mode_manager/FlightTasks_generated.hpp', needed by 'events/px4.json'.  Stop.
This commit is contained in:
Beat Küng 2021-05-05 11:09:28 +02:00 committed by Daniel Agar
parent b12b884f4c
commit e3972d563a
4 changed files with 12 additions and 2 deletions

View File

@ -34,6 +34,8 @@
# Support IN_LIST if() operator
cmake_policy(SET CMP0057 NEW)
include(px4_list_make_absolute)
set(msg_files
actuator_armed.msg
actuator_controls.msg
@ -230,6 +232,8 @@ if(invalid_msgs)
endif()
endif()
px4_list_make_absolute(msg_files ${CMAKE_CURRENT_SOURCE_DIR} ${msg_files})
if(NOT EXTERNAL_MODULES_LOCATION STREQUAL "")
# Check that the msg directory and the CMakeLists.txt file exists
if(EXISTS ${EXTERNAL_MODULES_LOCATION}/msg/CMakeLists.txt)

View File

@ -49,6 +49,7 @@ add_custom_command(OUTPUT ${generated_events_px4_file}
${PX4_SOURCE_DIR}/Tools/px4events/jsonout.py
${PX4_SOURCE_DIR}/Tools/px4events/srcparser.py
${PX4_SOURCE_DIR}/Tools/px4events/srcscanner.py
prebuild_targets # ensure all generated source files exist
COMMENT "Generating px4 event json file from source"
)
add_custom_target(events_px4_json DEPENDS ${generated_events_px4_file})

View File

@ -99,6 +99,9 @@ add_custom_command(
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
VERBATIM
)
add_custom_target(flighttasks_generated
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/FlightTasks_generated.cpp)
add_dependencies(prebuild_targets flighttasks_generated)
add_compile_options(
-Wno-cast-align
@ -123,6 +126,7 @@ px4_add_module(
DEPENDS
px4_work_queue
WeatherVane
flighttasks_generated
)
# add all flight task dependencies

View File

@ -33,15 +33,15 @@
add_custom_command(OUTPUT listener_generated.cpp
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate_listener.py ${PX4_SOURCE_DIR} ${msg_files} > listener_generated.cpp
DEPENDS generate_listener.py uorb_msgs
DEPENDS generate_listener.py ${msg_files}
)
add_custom_target(generate_topic_listener
DEPENDS
listener_generated.cpp
generate_listener.py
uorb_msgs
)
add_dependencies(prebuild_targets generate_topic_listener)
px4_add_module(
MODULE systemcmds__topic_listener
@ -56,5 +56,6 @@ px4_add_module(
${CMAKE_CURRENT_BINARY_DIR}/listener_generated.cpp
DEPENDS
generate_topic_listener
uorb_msgs
)