diff --git a/.gitignore b/.gitignore index f99223db53c452f25c8251b5c6e91288257b3468..dae302ec5127607e44583e90809a1ad9ffed2f34 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,3 @@ -*.d -!ROMFS/*/*.d -!ROMFS/*/*/*.d -!ROMFS/*/*/*/*.d -*.px4log *.dSYM *.o *.gch @@ -17,8 +12,6 @@ .settings .swp .~lock.* -Archives/* -Build/* Testing/ Packages/* s3deploy-branch/ @@ -62,13 +55,6 @@ GTAGS *.creator.user *.files *.includes -src/modules/micrortps_bridge/micrortps_agent/ -src/modules/micrortps_bridge/micrortps_listener/ - -# uavcan firmware -ROMFS/px4fmu_common/uavcan/ -vectorcontrol/ - # CLion ignores .idea diff --git a/.gitmodules b/.gitmodules index fef3e7ed69dfe686d5b938017f14c036e1319571..a51777e1103fdb79333f0ba9a8b2a1728c888617 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,10 +8,10 @@ path = src/modules/uavcan/libuavcan url = https://github.com/UAVCAN/libuavcan.git [submodule "Tools/genmsg"] - path = Tools/genmsg + path = msg/tools/genmsg url = https://github.com/ros/genmsg.git [submodule "Tools/gencpp"] - path = Tools/gencpp + path = msg/tools/gencpp url = https://github.com/ros/gencpp.git [submodule "Tools/jMAVSim"] path = Tools/jMAVSim diff --git a/CMakeLists.txt b/CMakeLists.txt index 5acead0d3244ce85518f005f75f70f7e848f45e8..8d5ab7cea422fa06d7d165295b3132ca025a5c2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -192,8 +192,6 @@ px4_add_git_submodule(TARGET git_ecl PATH "src/lib/ecl") px4_add_git_submodule(TARGET git_gazebo PATH "Tools/sitl_gazebo") px4_add_git_submodule(TARGET git_gazebo_flow PATH "Tools/sitl_gazebo/external/OpticalFlow") px4_add_git_submodule(TARGET git_gazebo_klt PATH "Tools/sitl_gazebo/external/OpticalFlow/external/klt_feature_tracker") -px4_add_git_submodule(TARGET git_gencpp PATH "Tools/gencpp") -px4_add_git_submodule(TARGET git_genmsg PATH "Tools/genmsg") px4_add_git_submodule(TARGET git_gps_devices PATH "src/drivers/gps/devices") px4_add_git_submodule(TARGET git_jmavsim PATH "Tools/jMAVSim") px4_add_git_submodule(TARGET git_matrix PATH "src/lib/matrix") @@ -361,16 +359,9 @@ add_definitions(${definitions}) #============================================================================= # message, and airframe generation # - include(common/px4_metadata) add_subdirectory(msg) -px4_generate_messages(TARGET msg_gen - MSG_FILES ${msg_files} - OS ${OS} - INCLUDES ${msg_include_paths} - DEPENDS prebuild_targets - ) px4_generate_airframes_xml(BOARD ${BOARD}) diff --git a/cmake/common/px4_metadata.cmake b/cmake/common/px4_metadata.cmake index 3ab3b8f09736fad0c2b363a0c42c83f70fcbdf46..9971204e54f7c2cec08178f4ed9386a30dcf7079 100644 --- a/cmake/common/px4_metadata.cmake +++ b/cmake/common/px4_metadata.cmake @@ -37,135 +37,9 @@ # # utility functions # -# * px4_generate_messages # * px4_generate_airframes_xml # -#============================================================================= -# -# px4_generate_messages -# -# This function generates source code from ROS msg definitions. -# -# Usage: -# px4_generate_messages(TARGET <target> MSGS <msg-files>) -# -# Input: -# MSG_FILES : the ROS msgs to generate files from -# OS : the operating system selected -# DEPENDS : dependencies -# -# Output: -# TARGET : the message generation target -# -# Example: -# px4_generate_messages(TARGET <target> -# MSG_FILES <files> OS <operating-system> -# [ DEPENDS <dependencies> ] -# ) -# -function(px4_generate_messages) - px4_parse_function_args( - NAME px4_generate_messages - OPTIONS VERBOSE - ONE_VALUE OS TARGET - MULTI_VALUE MSG_FILES DEPENDS INCLUDES - REQUIRED MSG_FILES OS TARGET - ARGN ${ARGN}) - - set(QUIET) - if (NOT VERBOSE) - set(QUIET "-q") - endif() - - # headers - set(msg_out_path ${PX4_BINARY_DIR}/src/modules/uORB/topics) - set(msg_list) - foreach(msg_file ${MSG_FILES}) - get_filename_component(msg ${msg_file} NAME_WE) - list(APPEND msg_list ${msg}) - endforeach() - - set(msg_files_out) - foreach(msg ${msg_list}) - list(APPEND msg_files_out ${msg_out_path}/${msg}.h) - endforeach() - - add_custom_command(OUTPUT ${msg_files_out} - COMMAND ${PYTHON_EXECUTABLE} - Tools/px_generate_uorb_topic_files.py - --headers - ${QUIET} - -f ${MSG_FILES} - -i ${INCLUDES} - -o ${msg_out_path} - -e msg/templates/uorb - -t ${PX4_BINARY_DIR}/topics_temporary_header - DEPENDS ${DEPENDS} ${MSG_FILES} - WORKING_DIRECTORY ${PX4_SOURCE_DIR} - COMMENT "Generating uORB topic headers" - VERBATIM - ) - - # !sources - set(msg_source_out_path ${PX4_BINARY_DIR}/topics_sources) - set(msg_source_files_out ${msg_source_out_path}/uORBTopics.cpp) - foreach(msg ${msg_list}) - list(APPEND msg_source_files_out ${msg_source_out_path}/${msg}.cpp) - endforeach() - add_custom_command(OUTPUT ${msg_source_files_out} - COMMAND ${PYTHON_EXECUTABLE} - Tools/px_generate_uorb_topic_files.py - --sources - ${QUIET} - -f ${MSG_FILES} - -i ${INCLUDES} - -o ${msg_source_out_path} - -e msg/templates/uorb - -t ${PX4_BINARY_DIR}/topics_temporary_sources - DEPENDS ${DEPENDS} ${MSG_FILES} - WORKING_DIRECTORY ${PX4_SOURCE_DIR} - COMMENT "Generating uORB topic sources" - VERBATIM - ) - set_source_files_properties(${msg_source_files_out} PROPERTIES GENERATED TRUE) - - # multi messages for target OS - set(msg_multi_out_path ${PX4_BINARY_DIR}/src/platforms/${OS}/px4_messages) - set(msg_multi_files_out) - foreach(msg ${msg_list}) - list(APPEND msg_multi_files_out ${msg_multi_out_path}/px4_${msg}.h) - endforeach() - add_custom_command(OUTPUT ${msg_multi_files_out} - COMMAND ${PYTHON_EXECUTABLE} - Tools/px_generate_uorb_topic_files.py - --headers - ${QUIET} - -f ${MSG_FILES} - -i ${INCLUDES} - -o ${msg_multi_out_path} - -e msg/templates/px4/uorb - -t ${PX4_BINARY_DIR}/multi_topics_temporary/${OS} - -p "px4_" - DEPENDS ${DEPENDS} ${MSG_FILES} - WORKING_DIRECTORY ${PX4_SOURCE_DIR} - COMMENT "Generating uORB topic multi headers for ${OS}" - VERBATIM - ) - - px4_add_library(${TARGET} - ${msg_source_files_out} - ${msg_multi_files_out} - ${msg_files_out} - ) - - target_include_directories(${TARGET} - PRIVATE ${PX4_SOURCE_DIR}/src/lib/micro-CDR/include - PRIVATE ${PX4_BINARY_DIR}/src/lib/micro-CDR/include/microcdr - ) - target_link_libraries(${TARGET} PRIVATE lib__micro-CDR) -endfunction() - #============================================================================= # # px4_generate_airframes_xml diff --git a/cmake/configs/posix_sitl_default.cmake b/cmake/configs/posix_sitl_default.cmake index 4bba97fa051355dec5644c1dacb0a92a69c237b3..8fbbaec0d8d1d43111fe8c0e3b15481e86c233b9 100644 --- a/cmake/configs/posix_sitl_default.cmake +++ b/cmake/configs/posix_sitl_default.cmake @@ -114,8 +114,8 @@ set(config_module_list modules/systemlib/mixer modules/uORB - # micro RTPS - modules/micrortps_bridge/micrortps_client + # micro RTPS + modules/micrortps_bridge/micrortps_client # # Libraries @@ -231,4 +231,3 @@ if(REPLAY_FILE) message("Building with uorb publisher rules support") add_definitions(-DORB_USE_PUBLISHER_RULES) endif() - diff --git a/eclipse.cproject b/eclipse.cproject index 0c5182db61a9fa4cc4e79124a04fc2803437a4ee..5f15f538f4858aba9fa9cc05dc2200e13d99dad4 100644 --- a/eclipse.cproject +++ b/eclipse.cproject @@ -32,7 +32,6 @@ <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/lib}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/lib/geo}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/platforms}""/> - <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/modules/uORB}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/include}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/uORB/topics}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware}""/> @@ -54,7 +53,6 @@ <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/lib}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/lib/geo}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/platforms}""/> - <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/modules/uORB}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/include}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/uORB/topics}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware}""/> @@ -83,7 +81,6 @@ <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/modules/systemlib}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/lib/geo}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/platforms}""/> - <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/modules/uORB}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/src/include}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware/uORB/topics}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/PX4-Firmware}""/> diff --git a/eclipse.project b/eclipse.project index 1cfbea66fc281bf59fd2b726c851c4a498b9b016..383d0487b80d67a8cbc4abc626c9ec72199a5b0d 100644 --- a/eclipse.project +++ b/eclipse.project @@ -59,11 +59,11 @@ <variableList> <variable> <name>uORB_LOC</name> - <value>$%7BPROJECT_LOC%7D/build/posix_sitl_default/src/modules/uORB</value> + <value>$%7BPROJECT_LOC%7D/build/posix_sitl_default/uORB</value> </variable> <variable> <name>uORB_SRC</name> - <value>$%7BPROJECT_LOC%7D/build/posix_sitl_default/topics_sources</value> + <value>$%7BPROJECT_LOC%7D/build/posix_sitl_default/msg/topics_sources</value> </variable> </variableList> </projectDescription> diff --git a/msg/CMakeLists.txt b/msg/CMakeLists.txt index 40a34dd8b5e508efb68c39bdb8966a7abb3a7481..5e2b2166a73e82a0ce5d2104fa7084a4c9e90d01 100644 --- a/msg/CMakeLists.txt +++ b/msg/CMakeLists.txt @@ -31,7 +31,7 @@ # ############################################################################ -set(msg_file_names +set(msg_files actuator_armed.msg actuator_controls.msg actuator_direct.msg @@ -127,17 +127,63 @@ set(msg_file_names wind_estimate.msg ) -# Get absolute paths -set(msg_files) -set(msg_include_paths) +px4_add_git_submodule(TARGET git_gencpp PATH "Tools/gencpp") +px4_add_git_submodule(TARGET git_genmsg PATH "Tools/genmsg") -foreach(msg_file ${msg_file_names}) - list(APPEND msg_files ${CMAKE_CURRENT_SOURCE_DIR}/${msg_file}) +# headers +set(msg_out_path ${PX4_BINARY_DIR}/uORB/topics) +set(msg_source_out_path ${CMAKE_CURRENT_BINARY_DIR}/topics_sources) +#set(msg_source_files_out ${CMAKE_CURRENT_BINARY_DIR}/uORBTopics.cpp) + +set(msg_list) +set(uorb_headers) +set(uorb_sources ${msg_source_out_path}/uORBTopics.cpp) +foreach(msg_file ${msg_files}) + get_filename_component(msg ${msg_file} NAME_WE) + list(APPEND msg_list ${msg}) + list(APPEND uorb_headers ${msg_out_path}/${msg}.h) + list(APPEND uorb_sources ${msg_source_out_path}/${msg}.cpp) endforeach() -list(APPEND msg_include_paths ${CMAKE_CURRENT_SOURCE_DIR}) -set(msg_include_paths ${msg_include_paths} PARENT_SCOPE) +# Generate uORB headers +add_custom_command(OUTPUT ${uorb_headers} + COMMAND ${PYTHON_EXECUTABLE} tools/px_generate_uorb_topic_files.py + --headers + -f ${msg_files} + -i ${CMAKE_CURRENT_SOURCE_DIR} + -o ${msg_out_path} + -e templates/uorb + -t ${CMAKE_CURRENT_BINARY_DIR}/tmp/headers + -q + DEPENDS ${msg_files} + COMMENT "Generating uORB topic headers" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + VERBATIM + ) +add_custom_target(uorb_headers DEPENDS ${uorb_headers}) -set(msg_files ${msg_files} PARENT_SCOPE) +# Generate uORB sources +add_custom_command(OUTPUT ${uorb_sources} + COMMAND ${PYTHON_EXECUTABLE} tools/px_generate_uorb_topic_files.py + --sources + -f ${msg_files} + -i ${CMAKE_CURRENT_SOURCE_DIR} + -o ${msg_source_out_path} + -e templates/uorb + -t ${CMAKE_CURRENT_BINARY_DIR}/tmp/sources + -q + DEPENDS ${msg_files} + COMMENT "Generating uORB topic sources" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + VERBATIM + ) -# vim: set noet ft=cmake fenc=utf-8 ff=unix : +add_library(uorb_msgs STATIC EXCLUDE_FROM_ALL ${uorb_sources}) +add_dependencies(uorb_msgs uorb_headers prebuild_targets) + +# microCDR now part of uORB +target_include_directories(uorb_msgs + PRIVATE ${PX4_SOURCE_DIR}/src/lib/micro-CDR/include + PRIVATE ${PX4_BINARY_DIR}/src/lib/micro-CDR/include/microcdr + ) +target_link_libraries(uorb_msgs PRIVATE lib__micro-CDR) diff --git a/msg/templates/uorb/msg.cpp.template b/msg/templates/uorb/msg.cpp.template index 23cef4574b2b19fc0bfc0902cd77f250f1d54b4a..5c3523c44ad8564e00821a83b3a148c361ec677e 100644 --- a/msg/templates/uorb/msg.cpp.template +++ b/msg/templates/uorb/msg.cpp.template @@ -74,8 +74,7 @@ topic_fields = ["uint64_t timestamp"]+["%s %s" % (convert_type(field.type), fiel constexpr char __orb_@(topic_name)_fields[] = "@( ";".join(topic_fields) );"; @[for multi_topic in topics]@ -ORB_DEFINE(@multi_topic, struct @uorb_struct, @(struct_size-padding_end_size), - __orb_@(topic_name)_fields); +ORB_DEFINE(@multi_topic, struct @uorb_struct, @(struct_size-padding_end_size), __orb_@(topic_name)_fields); @[end for] @################################################# diff --git a/Tools/gencpp b/msg/tools/gencpp similarity index 100% rename from Tools/gencpp rename to msg/tools/gencpp diff --git a/Tools/generate_microRTPS_bridge.py b/msg/tools/generate_microRTPS_bridge.py similarity index 99% rename from Tools/generate_microRTPS_bridge.py rename to msg/tools/generate_microRTPS_bridge.py index 6cdb3af4e96352081e6907258fd0c5c00f07f38f..fbff244b8203169fc01c8dbbdcc0a1d90b3d2e7f 100644 --- a/Tools/generate_microRTPS_bridge.py +++ b/msg/tools/generate_microRTPS_bridge.py @@ -40,7 +40,7 @@ import sys, os, argparse, shutil import px_generate_uorb_topic_files import subprocess, glob -import errno +import errno def get_absolute_path(arg_parse_dir): root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) diff --git a/Tools/genmsg b/msg/tools/genmsg similarity index 100% rename from Tools/genmsg rename to msg/tools/genmsg diff --git a/Tools/px_generate_uorb_topic_files.py b/msg/tools/px_generate_uorb_topic_files.py similarity index 99% rename from Tools/px_generate_uorb_topic_files.py rename to msg/tools/px_generate_uorb_topic_files.py index 4a6e22bd29b26ac9da78805e30b17822402c064e..a519431f60c641da9e778d9cd6deeb19cc6b4582 100755 --- a/Tools/px_generate_uorb_topic_files.py +++ b/msg/tools/px_generate_uorb_topic_files.py @@ -47,7 +47,7 @@ import sys px4_tools_dir = os.path.dirname(os.path.abspath(__file__)) sys.path.append(px4_tools_dir + "/genmsg/src") sys.path.append(px4_tools_dir + "/gencpp/src") -px4_msg_dir = os.path.join(px4_tools_dir,"../msg") +px4_msg_dir = os.path.join(px4_tools_dir, "..") try: import em diff --git a/Tools/px_generate_uorb_topic_helper.py b/msg/tools/px_generate_uorb_topic_helper.py similarity index 100% rename from Tools/px_generate_uorb_topic_helper.py rename to msg/tools/px_generate_uorb_topic_helper.py diff --git a/Tools/uorb_rtps_message_ids.py b/msg/tools/uorb_rtps_message_ids.py similarity index 100% rename from Tools/uorb_rtps_message_ids.py rename to msg/tools/uorb_rtps_message_ids.py diff --git a/src/modules/micrortps_bridge/micrortps_client/CMakeLists.txt b/src/modules/micrortps_bridge/micrortps_client/CMakeLists.txt index 9091f79318b1ed21476e9356fd8c00a0f1bcc17b..8b0e1db119f1e21b11b5d2c0af603ade5e2a99cc 100644 --- a/src/modules/micrortps_bridge/micrortps_client/CMakeLists.txt +++ b/src/modules/micrortps_bridge/micrortps_client/CMakeLists.txt @@ -47,73 +47,77 @@ if(NOT GENERATE_RTPS_BRIDGE MATCHES "off") return() endif() - include_directories(.) - include_directories(${CMAKE_CURRENT_BINARY_DIR}) - include_directories(${PX4_SOURCE_DIR}/src/lib/micro-CDR/include) - include_directories(${PX4_BINARY_DIR}/src/lib/micro-CDR/include/microcdr) - # Do not delete everything in the current dir set(msg_out_path ${CMAKE_CURRENT_BINARY_DIR}) - set(topic_msg_path ${PX4_SOURCE_DIR}/msg) - set(send_topic_files) - foreach(topic ${config_rtps_send_topics}) - list(APPEND send_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg) - endforeach() + if (NOT "${config_rtps_send_topics}" STREQUAL "" OR NOT "${config_rtps_receive_topics}" STREQUAL "") - set(receive_topic_files) - foreach(topic ${config_rtps_receive_topics}) - list(APPEND receive_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg) - endforeach() + set(send_topic_files) + foreach(topic ${config_rtps_send_topics}) + list(APPEND send_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg) + endforeach() - foreach(topic ${config_rtps_send_topics}) - list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Publisher.cpp) - list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Publisher.h) - endforeach() + set(receive_topic_files) + foreach(topic ${config_rtps_receive_topics}) + list(APPEND receive_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg) + endforeach() - foreach(topic ${config_rtps_receive_topics}) - list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Subscriber.cpp) - list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Subscriber.h) - endforeach() + foreach(topic ${config_rtps_send_topics}) + list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Publisher.cpp) + list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Publisher.h) + endforeach() - if (NOT "${config_rtps_send_topics}" STREQUAL "" OR NOT "${config_rtps_receive_topics}" STREQUAL "") - set(topic_bridge_files_out microRTPS_client.cpp microRTPS_transport.cpp microRTPS_transport.h) + foreach(topic ${config_rtps_receive_topics}) + list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Subscriber.cpp) + list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Subscriber.h) + endforeach() - set(send_topic_files_opt) - if (NOT "${send_topic_files}" STREQUAL "") - set(send_topic_opt "-s") - endif() + set(send_topic_files_opt) + if (NOT "${send_topic_files}" STREQUAL "") + set(send_topic_opt "--send") + endif() - set(receive_topic_files_opt) - if (NOT "${receive_topic_files}" STREQUAL "") - set(receive_topic_opt "-r") - endif() + set(receive_topic_files_opt) + if (NOT "${receive_topic_files}" STREQUAL "") + set(receive_topic_opt "--receive") + endif() - add_custom_command(OUTPUT ${topic_bridge_files_out} - COMMAND ${PYTHON_EXECUTABLE} - ${PX4_SOURCE_DIR}/Tools/generate_microRTPS_bridge.py - -f $ENV{FASTRTPSGEN_DIR} - ${send_topic_opt} ${send_topic_files} - ${receive_topic_opt} ${receive_topic_files} - -t ${topic_msg_path} - -u ${msg_out_path} - DEPENDS ${DEPENDS} ${send_topic_files} ${receive_topic_files} - COMMENT "Generating RTPS topic bridge" - VERBATIM - ) - add_custom_target(topic_bridge_files DEPENDS ${topic_bridge_files_out}) + list(APPEND topic_bridge_files_out + ${msg_out_path}/micrortps_client/microRTPS_client.cpp + ${msg_out_path}/micrortps_client/microRTPS_transport.cpp + ${msg_out_path}/micrortps_client/microRTPS_transport.h + ) - px4_add_module( - MODULE modules__micrortps_bridge__micrortps_client - MAIN micrortps_client - STACK_MAIN 4096 - SRCS - ${msg_out_path}/microRTPS_transport.cpp - ${msg_out_path}/microRTPS_client.cpp - microRTPS_client_main.cpp - DEPENDS - platforms__common - topic_bridge_files + add_custom_command(OUTPUT ${topic_bridge_files_out} + COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/msg/tools/generate_microRTPS_bridge.py + --fastrtpsgen-dir $ENV{FASTRTPSGEN_DIR} + ${send_topic_opt} ${send_topic_files} + ${receive_topic_opt} ${receive_topic_files} + --topic-msg-dir ${PX4_SOURCE_DIR}/msg + --agent-outdir ${CMAKE_CURRENT_BINARY_DIR}/micrortps_agent + --client-outdir ${CMAKE_CURRENT_BINARY_DIR}/micrortps_client + DEPENDS ${send_topic_files} ${receive_topic_files} + COMMENT "Generating RTPS topic bridge" + VERBATIM ) - endif() + add_custom_target(topic_bridge_files DEPENDS ${topic_bridge_files_out}) + + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + include_directories(${CMAKE_CURRENT_BINARY_DIR}/micrortps_client) + + px4_add_module( + MODULE modules__micrortps_bridge__micrortps_client + MAIN micrortps_client + STACK_MAIN 4096 + SRCS + ${CMAKE_CURRENT_BINARY_DIR}/micrortps_client/microRTPS_transport.cpp + ${CMAKE_CURRENT_BINARY_DIR}/micrortps_client/microRTPS_client.cpp + microRTPS_client_main.cpp + DEPENDS + platforms__common + topic_bridge_files + uorb_headers + ) + target_link_libraries(modules__micrortps_bridge__micrortps_client PRIVATE lib__micro-CDR) + endif() endif() \ No newline at end of file diff --git a/src/modules/uORB/CMakeLists.txt b/src/modules/uORB/CMakeLists.txt index 1274da703ddd85f3ac04c54bbbe5f08ab055036f..95b5121363f3dbcd9f98204e85678d13cb93cd35 100644 --- a/src/modules/uORB/CMakeLists.txt +++ b/src/modules/uORB/CMakeLists.txt @@ -49,3 +49,4 @@ px4_add_module( DEPENDS platforms__common ) +target_link_libraries(modules__uORB uorb_msgs) diff --git a/src/platforms/common/CMakeLists.txt b/src/platforms/common/CMakeLists.txt index 7e536726c1c681a66fb774ee51773fc01126f320..5f6f57f6cb7f003f3b42dc7b37f7d2a048b6d491 100644 --- a/src/platforms/common/CMakeLists.txt +++ b/src/platforms/common/CMakeLists.txt @@ -30,10 +30,6 @@ # POSSIBILITY OF SUCH DAMAGE. # ############################################################################ -set(depends - msg_gen - prebuild_targets - ) px4_add_module( MODULE platforms__common @@ -42,6 +38,7 @@ px4_add_module( px4_getopt.c shutdown.cpp DEPENDS - ${depends} + prebuild_targets + uorb_headers ) # vim: set noet ft=cmake fenc=utf-8 ff=unix : diff --git a/src/systemcmds/topic_listener/CMakeLists.txt b/src/systemcmds/topic_listener/CMakeLists.txt index ec6351364df9a62fb44d18950ea0039f5585a84c..9bae4dacde40af847f1d5c96f40db6be205ab00e 100644 --- a/src/systemcmds/topic_listener/CMakeLists.txt +++ b/src/systemcmds/topic_listener/CMakeLists.txt @@ -33,11 +33,12 @@ add_custom_command(OUTPUT topic_listener.cpp COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate_listener.py ${PX4_SOURCE_DIR} > topic_listener.cpp - DEPENDS generate_listener.py msg_gen + DEPENDS generate_listener.py uorb_headers ) add_custom_target(generate_topic_listener - DEPENDS topic_listener.cpp generate_listener.py) + DEPENDS topic_listener.cpp generate_listener.py + ) px4_add_module( MODULE systemcmds__topic_listener