From 88861ea0466880eb50e2cc432cf2e6dc47f3e4ac Mon Sep 17 00:00:00 2001 From: Erwan Le Huitouze Date: Thu, 14 Sep 2017 23:58:31 +0200 Subject: [PATCH] Update generator, add kind message --- ...l_generator_java_generate_interfaces.cmake | 31 ++++++++++--------- .../msg_support.entry_point.cpp.template | 2 +- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake b/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake index 4ae75f4..6cfc7de 100644 --- a/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake +++ b/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake @@ -167,6 +167,7 @@ foreach(generated_source_file ${generated_source_files}) get_filename_component(_package_folder "${_full_folder}" DIRECTORY) get_filename_component(_package_name "${_package_folder}" NAME) get_filename_component(_parent_folder "${_full_folder}" NAME) + get_filename_component(_parent_folder_name "${_full_folder}" NAME_WE) get_filename_component(_base_msg_name "${generated_source_file}" NAME_WE) get_filename_component(_full_extension_msg_name "${generated_source_file}" EXT) @@ -179,42 +180,42 @@ foreach(generated_source_file ${generated_source_files}) set(_javaext_suffix "__javaext") - add_library(${_package_name}_${_base_msg_name}__${_typesupport_impl} SHARED + add_library(${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} SHARED "${generated_source_file}" ) - set_target_properties(${_package_name}_${_base_msg_name}__${_typesupport_impl} PROPERTIES + set_target_properties(${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} PROPERTIES COMPILE_FLAGS "${_extension_compile_flags}" LIBRARY_OUTPUT_DIRECTORY "${_output_path}/${_parent_folder}" RUNTIME_OUTPUT_DIRECTORY "${_output_path}/${_parent_folder}" ) - set_target_properties(${_package_name}_${_base_msg_name}__${_typesupport_impl} PROPERTIES + set_target_properties(${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} PROPERTIES COMPILE_FLAGS "${_extension_compile_flags}" LIBRARY_OUTPUT_DIRECTORY_DEBUG "${_output_path}/${_parent_folder}" RUNTIME_OUTPUT_DIRECTORY_DEBUG "${_output_path}/${_parent_folder}" ) - set_target_properties(${_package_name}_${_base_msg_name}__${_typesupport_impl} PROPERTIES + set_target_properties(${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} PROPERTIES COMPILE_FLAGS "${_extension_compile_flags}" LIBRARY_OUTPUT_DIRECTORY_RELEASE "${_output_path}/${_parent_folder}" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${_output_path}/${_parent_folder}" ) - set_target_properties(${_package_name}_${_base_msg_name}__${_typesupport_impl} PROPERTIES + set_target_properties(${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} PROPERTIES COMPILE_FLAGS "${_extension_compile_flags}" LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${_output_path}/${_parent_folder}" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${_output_path}/${_parent_folder}" ) - set_target_properties(${_package_name}_${_base_msg_name}__${_typesupport_impl} PROPERTIES + set_target_properties(${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} PROPERTIES COMPILE_FLAGS "${_extension_compile_flags}" LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${_output_path}/${_parent_folder}" RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${_output_path}/${_parent_folder}" ) add_dependencies( - ${_package_name}_${_base_msg_name}__${_typesupport_impl} + ${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} ${rosidl_generate_interfaces_TARGET}__rosidl_generator_c ${rosidl_generate_interfaces_TARGET}${_target_suffix} ) @@ -225,12 +226,12 @@ foreach(generated_source_file ${generated_source_files}) endif() target_link_libraries( - "${_package_name}_${_base_msg_name}__${_typesupport_impl}" + "${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl}" "${PROJECT_NAME}__${_typesupport_impl}" "${PROJECT_NAME}__rosidl_typesupport_c" ) - target_include_directories(${_package_name}_${_base_msg_name}__${_typesupport_impl} + target_include_directories(${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_c ${CMAKE_CURRENT_BINARY_DIR}/rosidl_generator_java @@ -239,12 +240,12 @@ foreach(generated_source_file ${generated_source_files}) foreach(_pkg_name ${rosidl_generate_interfaces_DEPENDENCY_PACKAGE_NAMES}) ament_target_dependencies( - "${_package_name}_${_base_msg_name}__${_typesupport_impl}" + "${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl}" "${_pkg_name}" ) endforeach() - ament_target_dependencies(${_package_name}_${_base_msg_name}__${_typesupport_impl} + ament_target_dependencies(${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} "rosidl_generator_c" "rosidl_generator_java" "rcljava_common" @@ -252,19 +253,19 @@ foreach(generated_source_file ${generated_source_files}) "${PROJECT_NAME}__rosidl_generator_c" ) - list(APPEND _extension_dependencies ${_package_name}_${_base_msg_name}__${_typesupport_impl}) + list(APPEND _extension_dependencies ${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl}) - add_dependencies(${_package_name}_${_base_msg_name}__${_typesupport_impl} + add_dependencies(${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} ${rosidl_generate_interfaces_TARGET}__${_typesupport_impl} ) if(NOT rosidl_generate_interfaces_SKIP_INSTALL) - install(TARGETS ${_package_name}_${_base_msg_name}__${_typesupport_impl} + install(TARGETS ${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) - ament_export_libraries(${_package_name}_${_base_msg_name}__${_typesupport_impl}) + ament_export_libraries(${_package_name}_${_parent_folder_name}_${_base_msg_name}__${_typesupport_impl}) endif() endforeach() diff --git a/rosidl_generator_java/resource/msg_support.entry_point.cpp.template b/rosidl_generator_java/resource/msg_support.entry_point.cpp.template index e1837ac..0da04c5 100644 --- a/rosidl_generator_java/resource/msg_support.entry_point.cpp.template +++ b/rosidl_generator_java/resource/msg_support.entry_point.cpp.template @@ -497,7 +497,7 @@ jobject @(spec.base_type.pkg_name)_@(type_name)__convert_to_java(@(msg_typename) @#### Field is String array #### @[ if field.type.type == 'string']@ jobject _jlist_@(field.name)_element = nullptr; - if (_ros_message->@(field.name).data[i].data != nullptr) { + if (_ros_message->@(field.name)[i].data != nullptr) { _jlist_@(field.name)_element = env->NewStringUTF(_ros_message->@(field.name)[i].data); } @[ elif field.type.type == 'bool']@