diff options
author | Sean Evoy | 2004-08-16 20:41:16 +0000 |
---|---|---|
committer | Sean Evoy | 2004-08-16 20:41:16 +0000 |
commit | b516c01e02daaab846686f1ea7a9abdc611ab4de (patch) | |
tree | be65c1acbf447469911cbeba5596115b844d5352 /build | |
parent | ae9f0a0e9a132f4dc2b2e114e4aa02da72fc557b (diff) | |
download | org.eclipse.cdt-b516c01e02daaab846686f1ea7a9abdc611ab4de.tar.gz org.eclipse.cdt-b516c01e02daaab846686f1ea7a9abdc611ab4de.tar.xz org.eclipse.cdt-b516c01e02daaab846686f1ea7a9abdc611ab4de.zip |
Fix for bugzilla 71134 -- Managed Make: String list command outputs null
Diffstat (limited to 'build')
4 files changed, 23 insertions, 3 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml b/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml index 2b33c5bac39..d06a3d86224 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml @@ -282,6 +282,14 @@ builtIn="false"> </listOptionValue> </option> + <option + valueType="stringList" + name="No Command StringList" + id="sub.tool.string.list"> + <listOptionValue value="x"/> + <listOptionValue value="y"/> + <listOptionValue value="z"/> + </option> </tool> </target> <target diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuild/core/tests/ManagedBuildCoreTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuild/core/tests/ManagedBuildCoreTests.java index 0e81ec2c223..9772909426a 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuild/core/tests/ManagedBuildCoreTests.java +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuild/core/tests/ManagedBuildCoreTests.java @@ -1232,6 +1232,8 @@ public class ManagedBuildCoreTests extends TestCase { * in the sub target, the test does a sanity check just to be complete. */ private void checkSubTarget(ITarget target) throws BuildException { + final String expectedFlags = "-I/usr/include -I/opt/gnome/include -IC:\\home\\tester/include -I\"../includes\" x y z"; + // Check the overridden clean command assertEquals("rm -yourworld", target.getCleanCommand()); // Make sure the target inherits the make command @@ -1259,7 +1261,7 @@ public class ManagedBuildCoreTests extends TestCase { assertEquals("Sub Tool", subTool.getName()); // Confirm that it has four options IOption[] subOpts = subTool.getOptions(); - assertEquals(4, subOpts.length); + assertEquals(5, subOpts.length); assertEquals("", subTool.getOutputFlag()); assertTrue(subTool.buildsFileType("yarf")); assertTrue(subTool.producesFileType("bus")); @@ -1311,6 +1313,14 @@ public class ManagedBuildCoreTests extends TestCase { assertEquals("obj1.o", objs[0]); assertEquals("obj2.o", objs[1]); assertEquals(IOption.BROWSE_FILE, subOpts[3].getBrowseType()); + assertNull(subOpts[3].getCommand()); + + // There should be a string list with no command + assertEquals("No Command StringList", subOpts[4].getName()); + assertEquals(IOption.STRING_LIST, subOpts[4].getValueType()); + + // Make sure the tool flags look right + assertEquals(subTool.getToolFlags(), expectedFlags); // Get the configs for this target; it should inherit all the configs defined for the parent IConfiguration[] configs = target.getConfigurations(); diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java index 56046f6519a..313f5df2ac4 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java @@ -275,7 +275,8 @@ public class Tool extends BuildObject implements ITool, IOptionCategory { String[] list = option.getStringListValue(); for (int j = 0; j < list.length; j++) { String temp = list[j]; - buf.append(listCmd + temp + WHITE_SPACE); + if (listCmd != null) buf.append(listCmd); + buf.append(temp + WHITE_SPACE); } break; diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java index 6bd4bcaddf0..a551ffb7ae6 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java @@ -461,7 +461,8 @@ public class ToolReference implements IToolReference { String[] list = option.getStringListValue(); for (int j = 0; j < list.length; j++) { String temp = list[j]; - buf.append(cmd + temp + WHITE_SPACE); + if (cmd != null) buf.append(cmd); + buf.append(temp + WHITE_SPACE); } break; |