@[if DEVELSPACE]@ # location of scripts in develspace set(GENJAVA_MESSAGE_ARTIFACTS_BIN_DIR "@(CMAKE_CURRENT_SOURCE_DIR)/scripts") @[else]@ set(GENJAVA_MESSAGE_ARTIFACTS_BIN_DIR "${genjava_DIR}/../../../@(CATKIN_PACKAGE_BIN_DESTINATION)") @[end if]@ set(GENJAVA_MESSAGE_ARTIFACTS_BIN ${GENJAVA_MESSAGE_ARTIFACTS_BIN_DIR}/genjava_message_artifacts) set(genjava_INSTALL_DIR "maven/org/ros/rosjava_messages") include(CMakeParseArguments) # Api for a a catkin metapackage rolls rosjava messages for # its dependencies. Accepts a list of package names attached # to the PACKAGES arg (similar to the genmsg # 'generate_messages' api. # # generate_rosjava_messages( # PACKAGES # std_msgs # geometry_msgs # ) macro(generate_rosjava_messages) if( ${ARGC} EQUAL 0 ) return() # Nothing to do (no packages specified) else() cmake_parse_arguments(ARG "" "" "PACKAGES" ${ARGN}) endif() if(ARG_UNPARSED_ARGUMENTS) message(FATAL_ERROR "generate_rosjava_messages() called with unused arguments: ${ARG_UNPARSED_ARGUMENTS}") endif() catkin_rosjava_env_setup() set(ROS_GRADLE_VERBOSE $ENV{ROS_GRADLE_VERBOSE}) if(ROS_GRADLE_VERBOSE) set(verbosity "--verbosity") else() set(verbosity "") endif() string(REPLACE ";" " " package_list "${ARG_PACKAGES}") add_custom_target(${PROJECT_NAME}_generate_artifacts ALL COMMAND ${CATKIN_ENV} ${PYTHON_EXECUTABLE} ${GENJAVA_MESSAGE_ARTIFACTS_BIN} ${verbosity} --avoid-rebuilding -o ${CMAKE_CURRENT_BINARY_DIR} -p ${ARG_PACKAGES} # this has to be a list argument so it separates each arg (not a single string!) DEPENDS WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Compiling rosjava message artifacts for [${package_list}]" ) set(build_dir_to_be_cleaned_list) foreach(pkg ${ARG_PACKAGES}) list(APPEND build_dir_to_be_cleaned_list "${CMAKE_CURRENT_BINARY_DIR}/${pkg}") endforeach() set_directory_properties(PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${build_dir_to_be_cleaned_list}") endmacro()