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

bugfixed artifact generator for messages, now handles external dependencies correctly.

parent 33b5b519
No related branches found
No related tags found
No related merge requests found
......@@ -146,7 +146,7 @@ class CatkinPackage {
def void generateMessageArtifact(Project p) {
p.version = version
p.dependencies.add("compile", 'org.ros.rosjava_bootstrap:message_generation:[0.1,)')
p.dependencies.add("compile", 'org.ros.rosjava_bootstrap:message_generation:[0.1,0.2)')
messageDependencies().each { d ->
p.dependencies.add("compile", p.dependencies.project(path: ':' + d))
}
......@@ -160,13 +160,36 @@ class CatkinPackage {
p.tasks.compileJava.source generateSourcesTask.outputs.files
}
def void generateUnofficialMessageArtifact(Project p) {
/* Couple of constraints here:
1) maven group forced to org.ros.rosjava_messages to that all message artifact
dependencies are easily found.
2) Open ended dependency range (takes the latest in ROS_PACKAGE_PATH) since we
don't know the artifact versions the user really wants.
*/
p.version = version
p.group = 'org.ros.rosjava_messages'
p.dependencies.add("compile", 'org.ros.rosjava_bootstrap:message_generation:[0.1,0.2)')
messageDependencies().each { d ->
p.dependencies.add("compile", 'org.ros.rosjava_messages:' + d + ':[0.1,)')
}
def generatedSourcesDir = "${p.buildDir}/generated-src"
def generateSourcesTask = p.tasks.create("generateSources", JavaExec)
generateSourcesTask.description = "Generate sources for " + name
generateSourcesTask.outputs.dir(p.file(generatedSourcesDir))
generateSourcesTask.args = new ArrayList<String>([generatedSourcesDir, name])
generateSourcesTask.classpath = p.configurations.runtime
generateSourcesTask.main = 'org.ros.internal.message.GenerateInterfaces'
p.tasks.compileJava.source generateSourcesTask.outputs.files
}
/*
* Hack to work around for rosjava_test_msgs - look in a subfolder for the
* msgs and name the artifact by the subfolder name/version.
*/
def void generateMessageArtifactInSubFolder(Project p, String subfolderName, List<String> dependencies) {
// p.version = version use the subfolder's project version
p.dependencies.add("compile", 'org.ros.rosjava_bootstrap:message_generation:[0.1,)')
p.dependencies.add("compile", 'org.ros.rosjava_bootstrap:message_generation:[0.1,0.2)')
dependencies.each { d ->
p.dependencies.add("compile", p.dependencies.project(path: ':' + d))
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment