From 085789089bf301b7a08dab79c7355be372b66b11 Mon Sep 17 00:00:00 2001 From: Daniel Stonier <d.stonier@gmail.com> Date: Wed, 11 Dec 2013 00:46:05 +0900 Subject: [PATCH] provide a limited scope path for unofficial message generation to avoid picking up old versions. --- .../groovy/org/ros/gradle_plugins/CatkinPlugin.groovy | 4 +++- .../org/ros/internal/message/GenerateInterfaces.java | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy b/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy index 3729c5b..a72e069 100644 --- a/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy +++ b/gradle_plugins/src/main/groovy/org/ros/gradle_plugins/CatkinPlugin.groovy @@ -108,9 +108,11 @@ class CatkinPackage { def name def version def dependencies + def directory def CatkinPackage(File packageXmlFilename) { def packageXml = new XmlParser().parse(packageXmlFilename) + directory = packageXmlFilename.parent name = packageXml.name.text() version = packageXml.version.text() dependencies = [] @@ -181,7 +183,7 @@ class CatkinPackage { 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.args = new ArrayList<String>([generatedSourcesDir, '--package-path=' + directory, name]) generateSourcesTask.classpath = p.configurations.runtime generateSourcesTask.main = 'org.ros.internal.message.GenerateInterfaces' p.tasks.compileJava.source generateSourcesTask.outputs.files diff --git a/message_generation/src/main/java/org/ros/internal/message/GenerateInterfaces.java b/message_generation/src/main/java/org/ros/internal/message/GenerateInterfaces.java index 1acdfcb..46756b8 100644 --- a/message_generation/src/main/java/org/ros/internal/message/GenerateInterfaces.java +++ b/message_generation/src/main/java/org/ros/internal/message/GenerateInterfaces.java @@ -33,6 +33,7 @@ import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.List; +import java.util.ListIterator; /** * @author damonkohler@google.com (Damon Kohler) @@ -69,7 +70,6 @@ public class GenerateInterfaces { packages = topicDefinitionFileProvider.getPackages(); } for (String pkg : packages) { - System.out.println("Package: " + pkg); Collection<MessageIdentifier> messageIdentifiers = topicDefinitionFileProvider.getMessageIdentifiersByPackage(pkg); if (messageIdentifiers != null) { @@ -159,6 +159,15 @@ public class GenerateInterfaces { arguments.add("."); } String rosPackagePath = System.getenv(ROS_PACKAGE_PATH); + // Overwrite with a supplied package path if specified (--package-path=) + for (ListIterator<String> iter = arguments.listIterator(); iter.hasNext(); ) { + String arg = iter.next(); + if (arg.contains("--package-path=")) { + rosPackagePath = arg.replace("--package-path=", ""); + iter.remove(); + break; + } + } Collection<File> packagePath = Lists.newArrayList(); for (String path : rosPackagePath.split(File.pathSeparator)) { File packageDirectory = new File(path); -- GitLab