diff --git a/rcldotnet/rcldotnet.h b/rcldotnet/rcldotnet.h index 7c293704..c1021a76 100644 --- a/rcldotnet/rcldotnet.h +++ b/rcldotnet/rcldotnet.h @@ -79,7 +79,7 @@ RCLDOTNET_EXPORT int32_t RCLDOTNET_CDECL native_rcl_wait_set_add_timer(void *wait_set_handle, void *timer_handle); RCLDOTNET_EXPORT -int32_t RCLDOTNET_CDECL native_rcl_wait_set_add_guard_condition_handle(void *wait_set_handle, void *guard_condition_handle); +int32_t RCLDOTNET_CDECL native_rcl_wait_set_add_guard_condition(void *wait_set_handle, void *guard_condition_handle); RCLDOTNET_EXPORT int32_t RCLDOTNET_CDECL native_rcl_action_client_wait_set_get_num_entries( diff --git a/rcldotnet/rcldotnet_action_client.c b/rcldotnet/rcldotnet_action_client.c index 25d4ea52..596b2945 100644 --- a/rcldotnet/rcldotnet_action_client.c +++ b/rcldotnet/rcldotnet_action_client.c @@ -26,7 +26,7 @@ #include "rosidl_runtime_c/message_type_support_struct.h" -#include "rcldotnet_client.h" +#include "rcldotnet_action_client.h" int32_t native_rcl_action_send_goal_request(void *action_client_handle, void *goal_request_handle, int64_t *sequence_number) { rcl_action_client_t * action_client = (rcl_action_client_t *)action_client_handle; diff --git a/rcldotnet_common/DllLoadUtils.cs b/rcldotnet_common/DllLoadUtils.cs index 556d80a9..43f0ecef 100644 --- a/rcldotnet_common/DllLoadUtils.cs +++ b/rcldotnet_common/DllLoadUtils.cs @@ -203,10 +203,10 @@ public class DllLoadUtilsUWP : DllLoadUtilsAbs [DllImport("api-ms-win-core-libraryloader-l2-1-0.dll", SetLastError = true, ExactSpelling = true)] private static extern IntPtr LoadPackagedLibraryUWP([MarshalAs(UnmanagedType.LPWStr)] string fileName, int reserved = 0); - [DllImport("api-ms-win-core-libraryloader-l1-2-0.dll", SetLastError = true, ExactSpelling = true)] + [DllImport("api-ms-win-core-libraryloader-l1-2-0.dll", EntryPoint = "FreeLibrary", SetLastError = true, ExactSpelling = true)] private static extern int FreeLibraryUWP(IntPtr handle); - [DllImport("api-ms-win-core-libraryloader-l1-2-0.dll", SetLastError = true, ExactSpelling = true)] + [DllImport("api-ms-win-core-libraryloader-l1-2-0.dll", EntryPoint = "GetProcAddress", SetLastError = true, ExactSpelling = true)] private static extern IntPtr GetProcAddressUWP(IntPtr handle, string procedureName); public override void FreeLibrary(IntPtr handle) => FreeLibraryUWP(handle); @@ -231,10 +231,10 @@ public class DllLoadUtilsWindowsDesktop : DllLoadUtilsAbs [DllImport("kernel32.dll", EntryPoint = "LoadLibraryA", SetLastError = true, ExactSpelling = true)] private static extern IntPtr LoadLibraryA(string fileName, int reserved = 0); - [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)] + [DllImport("kernel32.dll", EntryPoint = "FreeLibrary", SetLastError = true, ExactSpelling = true)] private static extern int FreeLibraryWin(IntPtr handle); - [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)] + [DllImport("kernel32.dll", EntryPoint = "GetProcAddress", SetLastError = true, ExactSpelling = true)] private static extern IntPtr GetProcAddressWin(IntPtr handle, string procedureName); public override void FreeLibrary(IntPtr handle) => FreeLibraryWin(handle); diff --git a/rosidl_generator_dotnet/cmake/rosidl_generator_dotnet_generate_interfaces.cmake b/rosidl_generator_dotnet/cmake/rosidl_generator_dotnet_generate_interfaces.cmake index 52e9aadc..e8f04110 100644 --- a/rosidl_generator_dotnet/cmake/rosidl_generator_dotnet_generate_interfaces.cmake +++ b/rosidl_generator_dotnet/cmake/rosidl_generator_dotnet_generate_interfaces.cmake @@ -35,6 +35,14 @@ set(_output_path set(_generated_cs_files "") set(_generated_c_ts_files "") set(_generated_h_files "") +set(ros2_distro "$ENV{ROS_DISTRO}") +set(before_humble_distro "foxy;galactic") + +if(ros2_distro IN_LIST before_humble_distro) + set(PYTHON_COMMAND ${PYTHON_EXECUTABLE}) +else() + set(PYTHON_COMMAND Python3::Interpreter) +endif() foreach(_abs_idl_file ${rosidl_generate_interfaces_ABS_IDL_FILES}) get_filename_component(_parent_folder "${_abs_idl_file}" DIRECTORY) @@ -140,7 +148,8 @@ set_property( if(_generated_cs_files) add_custom_command( OUTPUT ${_generated_cs_files} ${_generated_h_files} ${_generated_c_ts_files} - COMMAND ${PYTHON_EXECUTABLE} ${rosidl_generator_dotnet_BIN} + COMMAND ${PYTHON_COMMAND} + ARGS ${rosidl_generator_dotnet_BIN} --generator-arguments-file "${generator_arguments_file}" --typesupport-impls "${_typesupport_impls}" DEPENDS ${target_dependencies} @@ -215,9 +224,13 @@ if(_generated_c_ts_files) ${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_c ${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_dotnet ) - - rosidl_target_interfaces(${_target_name} - ${rosidl_generate_interfaces_TARGET} rosidl_typesupport_c) + + if(ros2_distro IN_LIST before_humble_distro) + rosidl_target_interfaces(${_target_name} ${rosidl_generate_interfaces_TARGET} rosidl_typesupport_c) + else() + rosidl_get_typesupport_target(c_typesupport_target "${rosidl_generate_interfaces_TARGET}" "rosidl_typesupport_c") + target_link_libraries(${_target_name} "${c_typesupport_target}") + endif() ament_target_dependencies(${_target_name} "rosidl_runtime_c"