From e3972d563a4bd6d8c3dbda9837588cdfb273c3cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Wed, 5 May 2021 11:09:28 +0200 Subject: [PATCH] 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. --- msg/CMakeLists.txt | 4 ++++ src/lib/events/CMakeLists.txt | 1 + src/modules/flight_mode_manager/CMakeLists.txt | 4 ++++ src/systemcmds/topic_listener/CMakeLists.txt | 5 +++-- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/msg/CMakeLists.txt b/msg/CMakeLists.txt index 88c2c217ae..ce36da4b6c 100644 --- a/msg/CMakeLists.txt +++ b/msg/CMakeLists.txt @@ -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) diff --git a/src/lib/events/CMakeLists.txt b/src/lib/events/CMakeLists.txt index cb42b1c4cc..8c3287a328 100644 --- a/src/lib/events/CMakeLists.txt +++ b/src/lib/events/CMakeLists.txt @@ -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}) diff --git a/src/modules/flight_mode_manager/CMakeLists.txt b/src/modules/flight_mode_manager/CMakeLists.txt index 4b7cac1852..582950c70d 100644 --- a/src/modules/flight_mode_manager/CMakeLists.txt +++ b/src/modules/flight_mode_manager/CMakeLists.txt @@ -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 diff --git a/src/systemcmds/topic_listener/CMakeLists.txt b/src/systemcmds/topic_listener/CMakeLists.txt index 31c93a753b..91f01658e5 100644 --- a/src/systemcmds/topic_listener/CMakeLists.txt +++ b/src/systemcmds/topic_listener/CMakeLists.txt @@ -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 )