From bbc3a75eff7fdd2613815f9d8d614292450414b4 Mon Sep 17 00:00:00 2001 From: Daniel Stonier <d.stonier@gmail.com> Date: Thu, 26 Jun 2014 10:57:34 +0900 Subject: [PATCH] dependency tracking in concert with gradle java messages. --- cmake/rosjava.cmake.em | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/cmake/rosjava.cmake.em b/cmake/rosjava.cmake.em index 9f9fbb5..0688758 100644 --- a/cmake/rosjava.cmake.em +++ b/cmake/rosjava.cmake.em @@ -84,35 +84,26 @@ macro(catkin_rosjava_setup) ################################### # Execution ################################### - # This is an interesting option, it uses cmake to check for changes in files and - # avoids gradle's own slow check. It could get annoying though. - file(GLOB_RECURSE BUILD_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS *.java *.gradle *.properties CMakeLists.txt *.cmake *.xml) - # Can't actually key off the subproject build dirs since we don't know them from here so we - # use touch a file to link the command to the target. Actual triggers come from the file dependency changes. - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/built - DEPENDS ${BUILD_FILES} - # COMMAND ${ROSJAVA_ENV} ${CATKIN_ENV} "env" "|" "grep" "ROS" + add_custom_target(gradle-${PROJECT_NAME} ALL + #COMMAND ${ROSJAVA_ENV} ${CATKIN_ENV} "env" "|" "grep" "ROS" COMMAND ${ROSJAVA_ENV} ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_options} ${gradle_tasks} - COMMAND touch ${CMAKE_CURRENT_BINARY_DIR}/built - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT "Running gradle tasks for ${PROJECT_NAME}" - ) - - add_custom_target(gradle-${PROJECT_NAME} - ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/built WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} VERBATIM + COMMENT "Gradling tasks for ${PROJECT_NAME}" ) ################################### # Target Management ################################### catkin_package_xml() - foreach(depends in ${${PROJECT_NAME}_BUILD_DEPENDS}) + foreach(depends ${${PROJECT_NAME}_BUILD_DEPENDS}) if(TARGET gradle-${depends}) - #message(STATUS "Adding dependency gradle-${depends}") + #message(STATUS "Adding dependency.....gradle-${PROJECT_NAME} <- gradle-${depends}") add_dependencies(gradle-${PROJECT_NAME} gradle-${depends}) endif() + if(TARGET ${depends}_generate_messages) + #message(STATUS "Adding dependency.....gradle-${PROJECT_NAME} <- ${depends}_generate_messages") + add_dependencies(gradle-${PROJECT_NAME} ${depends}_generate_messages) + endif() endforeach() if(NOT TARGET gradle-clean) add_custom_target(gradle-clean) -- GitLab