2
2
# Utilities
3
3
# #############################################################################
4
4
5
+ set (CATKIN_GLOBAL_MAVEN_DESTINATION ${CATKIN_GLOBAL_SHARE_DESTINATION}/ maven CACHE PATH " path to which maven artifacts are deployed in your workspace" )
6
+
5
7
# Scans down directories till it finds the gradle wrapper.
6
8
# It sets the following variables
7
9
# - ${PROJECT_NAME}_gradle_BINARY
@@ -35,22 +37,35 @@ macro(find_gradle_repo_root)
35
37
get_filename_component (${PROJECT_NAME}_gradle_ROOT ${${PROJECT_NAME}_gradle_SETTINGS} PATH)
36
38
endmacro ()
37
39
40
+ # Sets environment variables that are used by gradle to customise a build.
41
+ # This is better than modifying a gradle script - gradle should be able
42
+ # to be called alone without cmake intervention.
43
+ macro (_rosjava_env)
44
+ set (ROSJAVA_ENV $ENV{ROS_MAVEN_DEPLOYMENT_PATH})
45
+ if (NOT ROSJAVA_ENV)
46
+ set (ROSJAVA_ENV " ROS_MAVEN_DEPLOYMENT_PATH=${CATKIN_DEVEL_PREFIX}/${CATKIN_GLOBAL_MAVEN_DESTINATION}" )
47
+ endif ()
48
+ endmacro ()
49
+
38
50
# #############################################################################
39
51
# RosJava Package
40
52
# #############################################################################
41
53
# Calls the gradle wrapper to compile just the package
42
54
# that it is called in with install and installApp targets.
43
55
macro (catkin_rosjava_setup)
56
+ _rosjava_env ()
44
57
find_gradle ()
45
58
if ( ${ARGC} EQUAL 0 )
46
- set (gradle_tasks " install;installApp" )
59
+ # Note : COMMAND is a list of variables, so these need to be a list, not a single string
60
+ set (gradle_tasks " install;installApp;uploadArchives" )
47
61
else ()
48
- string ( REPLACE " ; " " " gradle_tasks " ${ARGV}" )
62
+ set ( gradle_tasks ${ARGV})
49
63
endif ()
50
64
add_custom_target (gradle- ${PROJECT_NAME}
51
65
ALL
52
- COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_tasks}
66
+ COMMAND ${ROSJAVA_ENV} ${ CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_tasks}
53
67
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
68
+ VERBATIM
54
69
)
55
70
catkin_package_xml ()
56
71
foreach (depends in ${${PROJECT_NAME}_BUILD_DEPENDS})
@@ -76,6 +91,7 @@ endmacro()
76
91
# It checks the build type and determines whether it should run
77
92
# assembleDebug or assembleRelease
78
93
macro (catkin_android_setup)
94
+ _rosjava_env ()
79
95
find_gradle ()
80
96
if ( ${ARGC} EQUAL 0 )
81
97
if (CMAKE_BUILD_TYPE STREQUAL " Release" )
@@ -88,8 +104,9 @@ macro(catkin_android_setup)
88
104
endif ()
89
105
add_custom_target (gradle- ${PROJECT_NAME}
90
106
ALL
91
- COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_tasks}
107
+ COMMAND ${ROSJAVA_ENV} ${ CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_tasks}
92
108
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
109
+ VERBATIM
93
110
)
94
111
catkin_package_xml ()
95
112
foreach (depends in ${${PROJECT_NAME}_BUILD_DEPENDS})
0 commit comments