Bug 567374 - [Robotics, ROS2] Configure CMAKE_PREFIX_PATH in project setup, enable "sourcing" multiple setup files
- Don't add an environment variable, if content is unset
Change-Id: I85dddd0dced1e33dbb277e089c22bc8479af9421
Signed-off-by: Ansgar Radermacher <ansgar.radermacher@cea.fr>
diff --git a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen/src/org/eclipse/papyrus/robotics/ros2/codegen/utils/ProjectTools.xtend b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen/src/org/eclipse/papyrus/robotics/ros2/codegen/utils/ProjectTools.xtend
index 514dc16..b4ca741 100644
--- a/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen/src/org/eclipse/papyrus/robotics/ros2/codegen/utils/ProjectTools.xtend
+++ b/plugins/ros2/org.eclipse.papyrus.robotics.ros2.codegen/src/org/eclipse/papyrus/robotics/ros2/codegen/utils/ProjectTools.xtend
@@ -46,6 +46,7 @@
import org.eclipse.uml2.uml.Class
import org.eclipse.uml2.uml.Package
import org.eclipse.papyrus.robotics.ros2.codegen.component.RoboticsCppCreator
+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription
/**
* get or create a CDT project with a given name
@@ -96,17 +97,16 @@
var cdesc = mngr.getProjectDescription(project, true)
try {
- val amentPrefix = new EnvironmentVariable(Ros2Constants.AMENT_PREFIX_PATH, EnvironmentUtils.get(Ros2Constants.AMENT_PREFIX_PATH))
- val cmakePrefix = new EnvironmentVariable(Ros2Constants.CMAKE_PREFIX_PATH, EnvironmentUtils.get(Ros2Constants.CMAKE_PREFIX_PATH))
- val pythonPath = new EnvironmentVariable(Ros2Constants.PYTHON_PATH, EnvironmentUtils.get(Ros2Constants.PYTHON_PATH))
+ val amentPrefix = EnvironmentUtils.get(Ros2Constants.AMENT_PREFIX_PATH)
+ val cmakePrefix = EnvironmentUtils.get(Ros2Constants.CMAKE_PREFIX_PATH)
+ val pythonPath = EnvironmentUtils.get(Ros2Constants.PYTHON_PATH)
// loop over all configurations
for (configDescr : cdesc.getConfigurations()) {
- val contribEnv = CCorePlugin.getDefault().getBuildEnvironmentManager().getContributedEnvironment();
- contribEnv.addVariable(amentPrefix, configDescr);
- contribEnv.addVariable(cmakePrefix, configDescr);
- contribEnv.addVariable(pythonPath, configDescr);
+ addEnvironmenVar(configDescr, Ros2Constants.AMENT_PREFIX_PATH, amentPrefix)
+ addEnvironmenVar(configDescr, Ros2Constants.CMAKE_PREFIX_PATH, cmakePrefix)
+ addEnvironmenVar(configDescr, Ros2Constants.PYTHON_PATH, pythonPath)
val main = ManagedBuildManager.getConfigurationForDescription(configDescr)
@@ -142,6 +142,16 @@
}
/**
+ * Add a environment variable, if non null
+ */
+ static def addEnvironmenVar(ICConfigurationDescription configDescr, String key, String value) {
+ if (value !== null) {
+ val contribEnv = CCorePlugin.getDefault().getBuildEnvironmentManager().getContributedEnvironment();
+ contribEnv.addVariable(new EnvironmentVariable(key, value), configDescr);
+ }
+ }
+
+ /**
* Wait up to 10 seconds for the CDT indexer to finish
*/
static def waitForCDT() {