@@ -102,6 +102,51 @@ class CatkinPackages {
102
102
}
103
103
}
104
104
}
105
+
106
+ def isMessagePackage (String package_name ) {
107
+ def pkg
108
+ def result = false
109
+ try {
110
+ pkg = this . pkgs[package_name]
111
+ pkg. dependencies. each { d ->
112
+ if ( d. equalsIgnoreCase(" message_generation" ) ) {
113
+ result = true
114
+ }
115
+ }
116
+ } catch (NullPointerException e) {
117
+ /* Not a catkin package dependency (e.g. boost), ignore */
118
+ result = false
119
+ }
120
+ return result
121
+ }
122
+
123
+ def void generateMessageArtifact (Project p , String package_name ) {
124
+ def pkg = this . pkgs[package_name]
125
+ p. version = pkg. version
126
+ p. dependencies. add(" compile" , ' org.ros.rosjava_bootstrap:message_generation:[0.2,0.3)' )
127
+ List<String > messageDependencies = []
128
+ pkg. dependencies. each { d ->
129
+ if ( this . isMessagePackage(d) ) {
130
+ messageDependencies. add(d)
131
+ } else {
132
+ }
133
+ }
134
+ messageDependencies. each { d ->
135
+ if ( p. getParent(). getChildProjects(). containsKey(d) ) {
136
+ p. dependencies. add(" compile" , p. dependencies. project(path : ' :' + d))
137
+ } else {
138
+ p. dependencies. add(" compile" , ' org.ros.rosjava_messages:' + d + ' :[0.0,)' )
139
+ }
140
+ }
141
+ def generatedSourcesDir = " ${ p.buildDir} /generated-src"
142
+ def generateSourcesTask = p. tasks. create(" generateSources" , JavaExec )
143
+ generateSourcesTask. description = " Generate sources for " + pkg. name
144
+ generateSourcesTask. outputs. dir(p. file(generatedSourcesDir))
145
+ generateSourcesTask. args = new ArrayList<String > ([generatedSourcesDir, ' --package-path=' + pkg. directory, pkg. name])
146
+ generateSourcesTask. classpath = p. configurations. runtime
147
+ generateSourcesTask. main = ' org.ros.internal.message.GenerateInterfaces'
148
+ p. tasks. compileJava. source generateSourcesTask. outputs. files
149
+ }
105
150
}
106
151
107
152
class CatkinPackage {
@@ -134,6 +179,8 @@ class CatkinPackage {
134
179
* Find and annotate a list of package package dependencies.
135
180
* Useful for message artifact generation).
136
181
*
182
+ * Depracated, but kept around for legacy purposes, remove in igloo
183
+ *
137
184
* @return List<String> : dependencies (package name strings)
138
185
*/
139
186
def List<String > messageDependencies () {
@@ -145,7 +192,8 @@ class CatkinPackage {
145
192
}
146
193
return msgDependencies
147
194
}
148
-
195
+
196
+ /* Depracated, but kept around for legacy purposes, remove in igloo */
149
197
def void generateMessageArtifact (Project p ) {
150
198
p. version = version
151
199
p. dependencies. add(" compile" , ' org.ros.rosjava_bootstrap:message_generation:[0.2,0.3)' )
@@ -162,6 +210,7 @@ class CatkinPackage {
162
210
p. tasks. compileJava. source generateSourcesTask. outputs. files
163
211
}
164
212
213
+ /* Depracated, but kept around for legacy purposes, remove in igloo */
165
214
def void generateUnofficialMessageArtifact (Project p ) {
166
215
/* Couple of constraints here:
167
216
1) maven group forced to org.ros.rosjava_messages to that all message artifact
0 commit comments