Skip to content
Snippets Groups Projects
Commit edbae492 authored by Daniel Stonier's avatar Daniel Stonier
Browse files

msg subproject generation, the right way.

parent 75ea608e
Branches
No related tags found
No related merge requests found
......@@ -102,6 +102,60 @@ class CatkinPackages {
}
}
}
def isMessagePackage(String package_name) {
def pkg
def result = false
try {
pkg = this.pkgs[package_name]
/* println(" Name: " + pkg.name + "-" + pkg.version) */
/* println(" Dep-dependencies: " + pkg.dependencies) */
pkg.dependencies.each { d ->
if ( d.equalsIgnoreCase("message_generation") ) {
result = true
}
}
} catch (NullPointerException e) {
/* Not a catkin package dependency (e.g. boost), ignore */
result = false
}
return result
}
def void generateMessageArtifact(Project p, String package_name) {
def pkg = this.pkgs[package_name]
p.version = pkg.version
/* println("Artifact: " + pkg.name + "-" + pkg.version) */
p.dependencies.add("compile", 'org.ros.rosjava_bootstrap:message_generation:[0.1,0.2)')
List<String> messageDependencies = []
pkg.dependencies.each { d ->
/* println(" Dependency: " + d) */
if ( this.isMessagePackage(d) ) {
messageDependencies.add(d)
/* println(" Msg Pkg: yes") */
} else {
/* println(" Msg Pkg: no") */
}
}
messageDependencies.each { d ->
if ( p.getParent().getChildProjects().containsKey(d) ) {
/* println(" Internal: " + d) */
p.dependencies.add("compile", p.dependencies.project(path: ':' + d))
} else {
/* println(" External: " + d) */
p.dependencies.add("compile", 'org.ros.rosjava_messages:' + d + ':[0.0,)')
}
}
def generatedSourcesDir = "${p.buildDir}/generated-src"
def generateSourcesTask = p.tasks.create("generateSources", JavaExec)
generateSourcesTask.description = "Generate sources for " + pkg.name
generateSourcesTask.outputs.dir(p.file(generatedSourcesDir))
/* generateSourcesTask.args = new ArrayList<String>([generatedSourcesDir, pkg.name]) */
generateSourcesTask.args = new ArrayList<String>([generatedSourcesDir, '--package-path=' + pkg.directory, pkg.name])
generateSourcesTask.classpath = p.configurations.runtime
generateSourcesTask.main = 'org.ros.internal.message.GenerateInterfaces'
p.tasks.compileJava.source generateSourcesTask.outputs.files
}
}
class CatkinPackage {
......@@ -134,6 +188,8 @@ class CatkinPackage {
* Find and annotate a list of package package dependencies.
* Useful for message artifact generation).
*
* Depracated, but kept around for legacy purposes, remove in igloo
*
* @return List<String> : dependencies (package name strings)
*/
def List<String> messageDependencies() {
......@@ -146,6 +202,7 @@ class CatkinPackage {
return msgDependencies
}
/* Depracated, but kept around for legacy purposes, remove in igloo */
def void generateMessageArtifact(Project p) {
p.version = version
p.dependencies.add("compile", 'org.ros.rosjava_bootstrap:message_generation:[0.1,0.2)')
......@@ -162,6 +219,7 @@ class CatkinPackage {
p.tasks.compileJava.source generateSourcesTask.outputs.files
}
/* Depracated, but kept around for legacy purposes, remove in igloo */
def void generateUnofficialMessageArtifact(Project p) {
/* Couple of constraints here:
1) maven group forced to org.ros.rosjava_messages to that all message artifact
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment