@@ -102,6 +102,60 @@ 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
+ /* println(" Name: " + pkg.name + "-" + pkg.version) */
112
+ /* println(" Dep-dependencies: " + pkg.dependencies) */
113
+ pkg. dependencies. each { d ->
114
+ if ( d. equalsIgnoreCase(" message_generation" ) ) {
115
+ result = true
116
+ }
117
+ }
118
+ } catch (NullPointerException e) {
119
+ /* Not a catkin package dependency (e.g. boost), ignore */
120
+ result = false
121
+ }
122
+ return result
123
+ }
124
+
125
+ def void generateMessageArtifact (Project p , String package_name ) {
126
+ def pkg = this . pkgs[package_name]
127
+ p. version = pkg. version
128
+ /* println("Artifact: " + pkg.name + "-" + pkg.version) */
129
+ p. dependencies. add(" compile" , ' org.ros.rosjava_bootstrap:message_generation:[0.1,0.2)' )
130
+ List<String > messageDependencies = []
131
+ pkg. dependencies. each { d ->
132
+ /* println(" Dependency: " + d) */
133
+ if ( this . isMessagePackage(d) ) {
134
+ messageDependencies. add(d)
135
+ /* println(" Msg Pkg: yes") */
136
+ } else {
137
+ /* println(" Msg Pkg: no") */
138
+ }
139
+ }
140
+ messageDependencies. each { d ->
141
+ if ( p. getParent(). getChildProjects(). containsKey(d) ) {
142
+ /* println(" Internal: " + d) */
143
+ p. dependencies. add(" compile" , p. dependencies. project(path : ' :' + d))
144
+ } else {
145
+ /* println(" External: " + d) */
146
+ p. dependencies. add(" compile" , ' org.ros.rosjava_messages:' + d + ' :[0.0,)' )
147
+ }
148
+ }
149
+ def generatedSourcesDir = " ${ p.buildDir} /generated-src"
150
+ def generateSourcesTask = p. tasks. create(" generateSources" , JavaExec )
151
+ generateSourcesTask. description = " Generate sources for " + pkg. name
152
+ generateSourcesTask. outputs. dir(p. file(generatedSourcesDir))
153
+ /* generateSourcesTask.args = new ArrayList<String>([generatedSourcesDir, pkg.name]) */
154
+ generateSourcesTask. args = new ArrayList<String > ([generatedSourcesDir, ' --package-path=' + pkg. directory, pkg. name])
155
+ generateSourcesTask. classpath = p. configurations. runtime
156
+ generateSourcesTask. main = ' org.ros.internal.message.GenerateInterfaces'
157
+ p. tasks. compileJava. source generateSourcesTask. outputs. files
158
+ }
105
159
}
106
160
107
161
class CatkinPackage {
@@ -134,6 +188,8 @@ class CatkinPackage {
134
188
* Find and annotate a list of package package dependencies.
135
189
* Useful for message artifact generation).
136
190
*
191
+ * Depracated, but kept around for legacy purposes, remove in igloo
192
+ *
137
193
* @return List<String> : dependencies (package name strings)
138
194
*/
139
195
def List<String > messageDependencies () {
@@ -146,6 +202,7 @@ class CatkinPackage {
146
202
return msgDependencies
147
203
}
148
204
205
+ /* Depracated, but kept around for legacy purposes, remove in igloo */
149
206
def void generateMessageArtifact (Project p ) {
150
207
p. version = version
151
208
p. dependencies. add(" compile" , ' org.ros.rosjava_bootstrap:message_generation:[0.1,0.2)' )
@@ -162,6 +219,7 @@ class CatkinPackage {
162
219
p. tasks. compileJava. source generateSourcesTask. outputs. files
163
220
}
164
221
222
+ /* Depracated, but kept around for legacy purposes, remove in igloo */
165
223
def void generateUnofficialMessageArtifact (Project p ) {
166
224
/* Couple of constraints here:
167
225
1) maven group forced to org.ros.rosjava_messages to that all message artifact
0 commit comments