mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-12 18:55:38 +02:00
Apply patches:
1. Bob Monteleone - initial Discrete Custom Build Step support 2. Mikhail Sennikovsky - initial isSupported support 3. Norbert Pleott - support list of binary parsers in targetPlatform binaryParser attribute
This commit is contained in:
parent
9d949fe555
commit
ec7b7d4076
29 changed files with 1108 additions and 167 deletions
|
@ -1219,7 +1219,7 @@
|
||||||
<targetPlatform
|
<targetPlatform
|
||||||
id="cdt.managedbuild.target.testgnu.platform.exe.debug"
|
id="cdt.managedbuild.target.testgnu.platform.exe.debug"
|
||||||
name="Dbg Platform"
|
name="Dbg Platform"
|
||||||
binaryParser="org.eclipse.cdt.core.ELF"
|
binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
|
||||||
osList="solaris,linux,hpux,aix,qnx"
|
osList="solaris,linux,hpux,aix,qnx"
|
||||||
archList="all">
|
archList="all">
|
||||||
</targetPlatform>
|
</targetPlatform>
|
||||||
|
@ -1286,7 +1286,7 @@
|
||||||
<targetPlatform
|
<targetPlatform
|
||||||
id="cdt.managedbuild.target.testgnu.platform.exe.release"
|
id="cdt.managedbuild.target.testgnu.platform.exe.release"
|
||||||
name="Rel Platform"
|
name="Rel Platform"
|
||||||
binaryParser="org.eclipse.cdt.core.ELF"
|
binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE"
|
||||||
osList="solaris,linux,hpux,aix,qnx"
|
osList="solaris,linux,hpux,aix,qnx"
|
||||||
archList="all">
|
archList="all">
|
||||||
</targetPlatform>
|
</targetPlatform>
|
||||||
|
|
|
@ -76,6 +76,7 @@ public class ManagedBuildCoreTests extends TestCase {
|
||||||
int expectedSizeOSList = 5;
|
int expectedSizeOSList = 5;
|
||||||
String[] expectedArchList = {"all"};
|
String[] expectedArchList = {"all"};
|
||||||
String expectedBinaryParser = "org.eclipse.cdt.core.ELF";
|
String expectedBinaryParser = "org.eclipse.cdt.core.ELF";
|
||||||
|
String expectedBinaryParser2 = "org.eclipse.cdt.core.PE";
|
||||||
String[] expectedPlatformName = {"Dbg Platform",
|
String[] expectedPlatformName = {"Dbg Platform",
|
||||||
"Rel Platform"};
|
"Rel Platform"};
|
||||||
String expectedCommand = "make";
|
String expectedCommand = "make";
|
||||||
|
@ -146,8 +147,11 @@ public class ManagedBuildCoreTests extends TestCase {
|
||||||
expectedOSListarr.add(expectedOSListTokens[i].trim());
|
expectedOSListarr.add(expectedOSListTokens[i].trim());
|
||||||
}
|
}
|
||||||
assertTrue(Arrays.equals(platform.getOSList(), (String[]) expectedOSListarr.toArray(new String[expectedSizeOSList])));
|
assertTrue(Arrays.equals(platform.getOSList(), (String[]) expectedOSListarr.toArray(new String[expectedSizeOSList])));
|
||||||
assertTrue(Arrays.equals(platform.getArchList(), expectedArchList));
|
assertTrue(Arrays.equals(platform.getArchList(), expectedArchList));
|
||||||
assertEquals(platform.getBinaryParserId(), expectedBinaryParser);
|
String[] binaryParsers = platform.getBinaryParserList();
|
||||||
|
assertEquals(binaryParsers.length, 2);
|
||||||
|
assertEquals(binaryParsers[0], expectedBinaryParser);
|
||||||
|
assertEquals(binaryParsers[1], expectedBinaryParser2);
|
||||||
assertEquals(platform.getName(), expectedPlatformName[iconfig]);
|
assertEquals(platform.getName(), expectedPlatformName[iconfig]);
|
||||||
|
|
||||||
// Fetch and check builder
|
// Fetch and check builder
|
||||||
|
@ -339,7 +343,9 @@ public class ManagedBuildCoreTests extends TestCase {
|
||||||
ITargetPlatform platform = toolChain.getTargetPlatform();
|
ITargetPlatform platform = toolChain.getTargetPlatform();
|
||||||
assertTrue(Arrays.equals(platform.getOSList(), (String[]) expectedOSListarr.toArray(new String[expectedSizeOSList])));
|
assertTrue(Arrays.equals(platform.getOSList(), (String[]) expectedOSListarr.toArray(new String[expectedSizeOSList])));
|
||||||
assertTrue(Arrays.equals(platform.getArchList(), expectedArchList));
|
assertTrue(Arrays.equals(platform.getArchList(), expectedArchList));
|
||||||
assertEquals(platform.getBinaryParserId(), expectedBinaryParser);
|
String[] binaryParsers = platform.getBinaryParserList();
|
||||||
|
assertEquals(binaryParsers.length, 1);
|
||||||
|
assertEquals(binaryParsers[0], expectedBinaryParser);
|
||||||
assertEquals(platform.getName(), expectedPlatformName[iconfig]);
|
assertEquals(platform.getName(), expectedPlatformName[iconfig]);
|
||||||
|
|
||||||
// Fetch and check builder
|
// Fetch and check builder
|
||||||
|
@ -536,7 +542,9 @@ public class ManagedBuildCoreTests extends TestCase {
|
||||||
ITargetPlatform platform = toolChain.getTargetPlatform();
|
ITargetPlatform platform = toolChain.getTargetPlatform();
|
||||||
assertTrue(Arrays.equals(platform.getOSList(), (String[]) expectedOSListarr.toArray(new String[expectedSizeOSList])));
|
assertTrue(Arrays.equals(platform.getOSList(), (String[]) expectedOSListarr.toArray(new String[expectedSizeOSList])));
|
||||||
assertTrue(Arrays.equals(platform.getArchList(), expectedArchList));
|
assertTrue(Arrays.equals(platform.getArchList(), expectedArchList));
|
||||||
assertEquals(platform.getBinaryParserId(), expectedBinaryParser);
|
String[] binaryParsers = platform.getBinaryParserList();
|
||||||
|
assertEquals(binaryParsers.length, 1);
|
||||||
|
assertEquals(binaryParsers[0], expectedBinaryParser);
|
||||||
assertEquals(platform.getName(), expectedPlatformName[iconfig]);
|
assertEquals(platform.getName(), expectedPlatformName[iconfig]);
|
||||||
|
|
||||||
// Fetch and check builder
|
// Fetch and check builder
|
||||||
|
|
|
@ -890,7 +890,9 @@ public class ManagedBuildCoreTests20 extends TestCase {
|
||||||
assertEquals("make", configs[0].getBuildCommand());
|
assertEquals("make", configs[0].getBuildCommand());
|
||||||
IToolChain toolChain = configs[0].getToolChain();
|
IToolChain toolChain = configs[0].getToolChain();
|
||||||
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
|
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
|
||||||
assertEquals(expectedParserId, targetPlatform.getBinaryParserId());
|
String[] binaryParsers = targetPlatform.getBinaryParserList();
|
||||||
|
assertEquals(binaryParsers.length, 1);
|
||||||
|
assertEquals(binaryParsers[0], expectedParserId);
|
||||||
assertTrue(Arrays.equals(expectedOSList, toolChain.getOSList()));
|
assertTrue(Arrays.equals(expectedOSList, toolChain.getOSList()));
|
||||||
assertTrue(Arrays.equals(expectedArchList, toolChain.getArchList()));
|
assertTrue(Arrays.equals(expectedArchList, toolChain.getArchList()));
|
||||||
// This configuration defines no errors parsers.
|
// This configuration defines no errors parsers.
|
||||||
|
@ -1114,7 +1116,9 @@ public class ManagedBuildCoreTests20 extends TestCase {
|
||||||
assertEquals("make", configs[0].getBuildCommand());
|
assertEquals("make", configs[0].getBuildCommand());
|
||||||
IToolChain toolChain = configs[0].getToolChain();
|
IToolChain toolChain = configs[0].getToolChain();
|
||||||
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
|
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
|
||||||
assertEquals(expectedParserId, targetPlatform.getBinaryParserId());
|
String[] binaryParsers = targetPlatform.getBinaryParserList();
|
||||||
|
assertEquals(binaryParsers.length, 1);
|
||||||
|
assertEquals(binaryParsers[0], expectedParserId);
|
||||||
assertTrue(Arrays.equals(expectedOSList, toolChain.getOSList()));
|
assertTrue(Arrays.equals(expectedOSList, toolChain.getOSList()));
|
||||||
assertTrue(Arrays.equals(expectedArchList, toolChain.getArchList()));
|
assertTrue(Arrays.equals(expectedArchList, toolChain.getArchList()));
|
||||||
// This configuration defines no errors parsers.
|
// This configuration defines no errors parsers.
|
||||||
|
@ -1382,7 +1386,7 @@ public class ManagedBuildCoreTests20 extends TestCase {
|
||||||
// Make sure we get the proper binary parser
|
// Make sure we get the proper binary parser
|
||||||
IToolChain toolChain = configs[0].getToolChain();
|
IToolChain toolChain = configs[0].getToolChain();
|
||||||
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
|
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
|
||||||
assertEquals("org.eclipse.cdt.core.ELF", targetPlatform.getBinaryParserId());
|
assertEquals("org.eclipse.cdt.core.ELF", targetPlatform.getBinaryParserList()[0]);
|
||||||
// Make sure the os list is inherited
|
// Make sure the os list is inherited
|
||||||
String[] expectedOSList = {"win32","linux","solaris"};
|
String[] expectedOSList = {"win32","linux","solaris"};
|
||||||
assertTrue(Arrays.equals(expectedOSList, toolChain.getOSList()));
|
assertTrue(Arrays.equals(expectedOSList, toolChain.getOSList()));
|
||||||
|
@ -1536,7 +1540,7 @@ public class ManagedBuildCoreTests20 extends TestCase {
|
||||||
// Make sure the binary parser is hard-coded and available
|
// Make sure the binary parser is hard-coded and available
|
||||||
IToolChain toolChain = configs[0].getToolChain();
|
IToolChain toolChain = configs[0].getToolChain();
|
||||||
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
|
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
|
||||||
assertEquals("org.eclipse.cdt.core.PE", targetPlatform.getBinaryParserId());
|
assertEquals("org.eclipse.cdt.core.PE", targetPlatform.getBinaryParserList()[0]);
|
||||||
String[] expectedOSList = {"win32","linux","solaris"};
|
String[] expectedOSList = {"win32","linux","solaris"};
|
||||||
assertTrue(Arrays.equals(expectedOSList, toolChain.getOSList()));
|
assertTrue(Arrays.equals(expectedOSList, toolChain.getOSList()));
|
||||||
// Make sure the list is overridden
|
// Make sure the list is overridden
|
||||||
|
@ -1833,7 +1837,7 @@ public class ManagedBuildCoreTests20 extends TestCase {
|
||||||
IConfiguration[] configs = proj.getConfigurations();
|
IConfiguration[] configs = proj.getConfigurations();
|
||||||
IToolChain toolChain = configs[0].getToolChain();
|
IToolChain toolChain = configs[0].getToolChain();
|
||||||
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
|
ITargetPlatform targetPlatform = toolChain.getTargetPlatform();
|
||||||
assertEquals(expectedBinParserId, targetPlatform.getBinaryParserId());
|
assertEquals(expectedBinParserId, targetPlatform.getBinaryParserList()[0]);
|
||||||
// This target defines errors parsers. Check that the error parsers
|
// This target defines errors parsers. Check that the error parsers
|
||||||
// have been assigned.
|
// have been assigned.
|
||||||
assertEquals("org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser", configs[0].getErrorParserIds());
|
assertEquals("org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser", configs[0].getErrorParserIds());
|
||||||
|
|
|
@ -188,6 +188,34 @@
|
||||||
</documentation>
|
</documentation>
|
||||||
</annotation>
|
</annotation>
|
||||||
</attribute>
|
</attribute>
|
||||||
|
<attribute name="prebuildStep" type="string">
|
||||||
|
<annotation>
|
||||||
|
<documentation>
|
||||||
|
Specifies the pre-build command, which runs prior to the standard MBS build.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="postbuildStep" type="string">
|
||||||
|
<annotation>
|
||||||
|
<documentation>
|
||||||
|
Specifies the post-build command, which runs after the standard MBS build.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="preannouncebuildStep" type="string">
|
||||||
|
<annotation>
|
||||||
|
<documentation>
|
||||||
|
Specifies the string to be displayed when the pre-build command step is run.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="postannouncebuildStep" type="string">
|
||||||
|
<annotation>
|
||||||
|
<documentation>
|
||||||
|
Specifies the string to be displayed when the post-build command step is run.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</attribute>
|
||||||
</complexType>
|
</complexType>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
|
@ -266,6 +294,16 @@
|
||||||
</documentation>
|
</documentation>
|
||||||
</annotation>
|
</annotation>
|
||||||
</attribute>
|
</attribute>
|
||||||
|
<attribute name="isToolChainSupported" type="string">
|
||||||
|
<annotation>
|
||||||
|
<documentation>
|
||||||
|
Specifies the name of the class that implements IManagedIsToolChainSupported
|
||||||
|
</documentation>
|
||||||
|
<appInfo>
|
||||||
|
<meta.attribute kind="java" basedOn="org.eclipse.cdt.managedbuilder.core.IManagedIsToolChainSupported"/>
|
||||||
|
</appInfo>
|
||||||
|
</annotation>
|
||||||
|
</attribute>
|
||||||
</complexType>
|
</complexType>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2003, 2004 IBM Corporation and others.
|
* Copyright (c) 2003, 2005 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -28,6 +28,10 @@ import org.eclipse.core.resources.IResource;
|
||||||
public interface IConfiguration extends IBuildObject {
|
public interface IConfiguration extends IBuildObject {
|
||||||
public static final String ARTIFACT_NAME = "artifactName"; //$NON-NLS-1$
|
public static final String ARTIFACT_NAME = "artifactName"; //$NON-NLS-1$
|
||||||
public static final String CLEAN_COMMAND = "cleanCommand"; //$NON-NLS-1$
|
public static final String CLEAN_COMMAND = "cleanCommand"; //$NON-NLS-1$
|
||||||
|
public static final String PREBUILD_STEP = "prebuildStep"; //$NON-NLS-1$
|
||||||
|
public static final String POSTBUILD_STEP = "postbuildStep"; //$NON-NLS-1$
|
||||||
|
public static final String PREANNOUNCEBUILD_STEP = "preannouncebuildStep"; //$NON-NLS-1$
|
||||||
|
public static final String POSTANNOUNCEBUILD_STEP = "postannouncebuildStep"; //$NON-NLS-1$
|
||||||
// Schema element names
|
// Schema element names
|
||||||
public static final String CONFIGURATION_ELEMENT_NAME = "configuration"; //$NON-NLS-1$
|
public static final String CONFIGURATION_ELEMENT_NAME = "configuration"; //$NON-NLS-1$
|
||||||
public static final String ERROR_PARSERS = "errorParsers"; //$NON-NLS-1$
|
public static final String ERROR_PARSERS = "errorParsers"; //$NON-NLS-1$
|
||||||
|
@ -83,6 +87,34 @@ public interface IConfiguration extends IBuildObject {
|
||||||
public String getBuildCommand();
|
public String getBuildCommand();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the prebuild step from this configuration's builder
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public String getPrebuildStep();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the postbuild step from this configuration's builder
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public String getPostbuildStep();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the display string associated with the prebuild step from this configuration's builder
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public String getPreannouncebuildStep();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the display string associated with the postbuild step from this configuration's builder
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public String getPostannouncebuildStep();
|
||||||
|
|
||||||
|
/**
|
||||||
* Answers the OS-specific command to remove files created by the build
|
* Answers the OS-specific command to remove files created by the build
|
||||||
* of this configuration.
|
* of this configuration.
|
||||||
*
|
*
|
||||||
|
@ -266,6 +298,34 @@ public interface IConfiguration extends IBuildObject {
|
||||||
public void setBuildCommand(String command);
|
public void setBuildCommand(String command);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Sets the prebuild step for the receiver to the value in the argument.
|
||||||
|
*
|
||||||
|
* @param step
|
||||||
|
*/
|
||||||
|
public void setPrebuildStep(String step);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the postbuild step for the receiver to the value in the argument.
|
||||||
|
*
|
||||||
|
* @param step
|
||||||
|
*/
|
||||||
|
public void setPostbuildStep(String step);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the prebuild step display string for the receiver to the value in the argument.
|
||||||
|
*
|
||||||
|
* @param announceStep
|
||||||
|
*/
|
||||||
|
public void setPreannouncebuildStep(String announceStep);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the postbuild step display string for the receiver to the value in the argument.
|
||||||
|
*
|
||||||
|
* @param announceStep
|
||||||
|
*/
|
||||||
|
public void setPostannouncebuildStep(String announceStep);
|
||||||
|
|
||||||
|
/**
|
||||||
* Sets the command used to clean the outputs of this configuration.
|
* Sets the command used to clean the outputs of this configuration.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name
|
||||||
|
@ -350,4 +410,12 @@ public interface IConfiguration extends IBuildObject {
|
||||||
* @param command The command
|
* @param command The command
|
||||||
*/
|
*/
|
||||||
public void setToolCommand(ITool tool, String command);
|
public void setToolCommand(ITool tool, String command);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns <code>true</code> if the configuration's tool-chain is supported on the system
|
||||||
|
* otherwise returns <code>false</code>
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public boolean isSupported();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2003,2004 Rational Software Corporation and others.
|
* Copyright (c) 2003,2005 Rational Software Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v0.5
|
* are made available under the terms of the Common Public License v0.5
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -97,6 +97,34 @@ public interface IManagedBuildInfo {
|
||||||
public String getBuildCommand();
|
public String getBuildCommand();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Answers the prebuild step for the default configuration
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public String getPrebuildStep();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answers the postbuild step for the default configuration
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public String getPostbuildStep();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answers the display string associated with the prebuild step for the default configuration
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public String getPreannouncebuildStep();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answers the display string associated with the postbuild step for the default configuration
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public String getPostannouncebuildStep();
|
||||||
|
|
||||||
|
/**
|
||||||
* Answers the command needed to remove files on the build machine
|
* Answers the command needed to remove files on the build machine
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
/**********************************************************************
|
||||||
|
* Copyright (c) 2005 Intel Corporation and others.
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Common Public License v1.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/cpl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Intel Corporation - Initial API and implementation
|
||||||
|
**********************************************************************/
|
||||||
|
package org.eclipse.cdt.managedbuilder.core;
|
||||||
|
|
||||||
|
import org.eclipse.core.runtime.PluginVersionIdentifier;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @since 3.0
|
||||||
|
*/
|
||||||
|
public interface IManagedIsToolChainSupported {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the given tool-chain is supported on the system
|
||||||
|
* otherwise returns <code>false</code>
|
||||||
|
*/
|
||||||
|
public boolean isSupported(IToolChain toolChain,
|
||||||
|
PluginVersionIdentifier version,
|
||||||
|
String instance);
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2004 Intel Corporation and others.
|
* Copyright (c) 2004, 2005 Intel Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -128,4 +128,11 @@ public interface IProjectType extends IBuildObject {
|
||||||
*/
|
*/
|
||||||
public boolean isTestProjectType();
|
public boolean isTestProjectType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns <code>true</code> if at least one project-type contiguration is supported on the system
|
||||||
|
* otherwise returns <code>false</code>
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public boolean isSupported();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2004 Intel Corporation and others.
|
* Copyright (c) 2004, 2005 Intel Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -94,16 +94,32 @@ public interface ITargetPlatform extends IBuildObject {
|
||||||
* Returns the unique ID of the binary parser associated with the target platform.
|
* Returns the unique ID of the binary parser associated with the target platform.
|
||||||
*
|
*
|
||||||
* @return String
|
* @return String
|
||||||
|
* @deprecated Use getBinaryParserList
|
||||||
*/
|
*/
|
||||||
public String getBinaryParserId();
|
public String getBinaryParserId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the unique IDs of the binary parsers associated with the target platform.
|
||||||
|
*
|
||||||
|
* @return String[]
|
||||||
|
*/
|
||||||
|
public String[] getBinaryParserList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the string id of the binary parser for this target platform.
|
* Sets the string id of the binary parser for this target platform.
|
||||||
*
|
*
|
||||||
* @param id
|
* @param id
|
||||||
|
* @deprecated Use setBinaryParserList
|
||||||
*/
|
*/
|
||||||
public void setBinaryParserId(String id);
|
public void setBinaryParserId(String id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the string ids of the binary parsers for this target platform.
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
*/
|
||||||
|
public void setBinaryParserList(String[] ids);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns <code>true</code> if this element has changes that need to
|
* Returns <code>true</code> if this element has changes that need to
|
||||||
* be saved in the project file, else <code>false</code>.
|
* be saved in the project file, else <code>false</code>.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2004 Intel Corporation and others.
|
* Copyright (c) 2004, 2005 Intel Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -32,6 +32,7 @@ public interface IToolChain extends IBuildObject {
|
||||||
public static final String OS_LIST = "osList"; //$NON-NLS-1$
|
public static final String OS_LIST = "osList"; //$NON-NLS-1$
|
||||||
public static final String ARCH_LIST = "archList"; //$NON-NLS-1$
|
public static final String ARCH_LIST = "archList"; //$NON-NLS-1$
|
||||||
public static final String ERROR_PARSERS = "errorParsers"; //$NON-NLS-1$
|
public static final String ERROR_PARSERS = "errorParsers"; //$NON-NLS-1$
|
||||||
|
public static final String IS_TOOL_CHAIN_SUPPORTED = "isToolChainSupported"; //$NON-NLS-1$
|
||||||
// The attribute name for the scanner info collector
|
// The attribute name for the scanner info collector
|
||||||
public static final String SCANNER_CONFIG_PROFILE_ID = "scannerConfigDiscoveryProfileId"; //$NON-NLS-1$
|
public static final String SCANNER_CONFIG_PROFILE_ID = "scannerConfigDiscoveryProfileId"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
@ -247,4 +248,11 @@ public interface IToolChain extends IBuildObject {
|
||||||
*/
|
*/
|
||||||
public boolean isExtensionElement();
|
public boolean isExtensionElement();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns <code>true</code> if the tool-chain support is installed on the system
|
||||||
|
* otherwise returns <code>false</code>
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public boolean isSupported();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2003,2004 IBM Rational Software and others.
|
* Copyright (c) 2003,2005 IBM Rational Software and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -60,6 +60,10 @@ public class Configuration extends BuildObject implements IConfiguration {
|
||||||
private String cleanCommand;
|
private String cleanCommand;
|
||||||
private String artifactExtension;
|
private String artifactExtension;
|
||||||
private String errorParserIds;
|
private String errorParserIds;
|
||||||
|
private String prebuildStep;
|
||||||
|
private String postbuildStep;
|
||||||
|
private String preannouncebuildStep;
|
||||||
|
private String postannouncebuildStep;
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
private boolean isExtensionConfig = false;
|
private boolean isExtensionConfig = false;
|
||||||
private boolean isDirty = false;
|
private boolean isDirty = false;
|
||||||
|
@ -225,9 +229,21 @@ public class Configuration extends BuildObject implements IConfiguration {
|
||||||
if (cloneConfig.errorParserIds != null) {
|
if (cloneConfig.errorParserIds != null) {
|
||||||
errorParserIds = new String(cloneConfig.errorParserIds);
|
errorParserIds = new String(cloneConfig.errorParserIds);
|
||||||
}
|
}
|
||||||
|
if (cloneConfig.prebuildStep != null) {
|
||||||
|
prebuildStep = new String(cloneConfig.prebuildStep);
|
||||||
|
}
|
||||||
|
if (cloneConfig.postbuildStep != null) {
|
||||||
|
postbuildStep = new String(cloneConfig.postbuildStep);
|
||||||
|
}
|
||||||
|
if (cloneConfig.preannouncebuildStep != null) {
|
||||||
|
preannouncebuildStep = new String(cloneConfig.preannouncebuildStep);
|
||||||
|
}
|
||||||
|
if (cloneConfig.postannouncebuildStep != null) {
|
||||||
|
postannouncebuildStep = new String( cloneConfig.postannouncebuildStep);
|
||||||
|
}
|
||||||
|
|
||||||
// Clone the configuration's children
|
// Clone the configuration's children
|
||||||
// Tool Chain
|
// Tool Chain
|
||||||
int nnn = ManagedBuildManager.getRandomNumber();
|
int nnn = ManagedBuildManager.getRandomNumber();
|
||||||
String subId;
|
String subId;
|
||||||
String subName;
|
String subName;
|
||||||
|
@ -316,6 +332,14 @@ public class Configuration extends BuildObject implements IConfiguration {
|
||||||
|
|
||||||
// Get the clean command
|
// Get the clean command
|
||||||
cleanCommand = element.getAttribute(CLEAN_COMMAND);
|
cleanCommand = element.getAttribute(CLEAN_COMMAND);
|
||||||
|
|
||||||
|
// Get the pre-build and post-build commands
|
||||||
|
prebuildStep = element.getAttribute(PREBUILD_STEP);
|
||||||
|
postbuildStep = element.getAttribute(POSTBUILD_STEP);
|
||||||
|
|
||||||
|
// Get the pre-build and post-build announcements
|
||||||
|
preannouncebuildStep = element.getAttribute(PREANNOUNCEBUILD_STEP);
|
||||||
|
postannouncebuildStep = element.getAttribute(POSTANNOUNCEBUILD_STEP);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -362,6 +386,25 @@ public class Configuration extends BuildObject implements IConfiguration {
|
||||||
if (element.hasAttribute(CLEAN_COMMAND)) {
|
if (element.hasAttribute(CLEAN_COMMAND)) {
|
||||||
cleanCommand = element.getAttribute(CLEAN_COMMAND);
|
cleanCommand = element.getAttribute(CLEAN_COMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get the pre-build and post-build commands
|
||||||
|
if (element.hasAttribute(PREBUILD_STEP)) {
|
||||||
|
prebuildStep = element.getAttribute(PREBUILD_STEP);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (element.hasAttribute(POSTBUILD_STEP)) {
|
||||||
|
postbuildStep = element.getAttribute(POSTBUILD_STEP);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the pre-build and post-build announcements
|
||||||
|
if (element.hasAttribute(PREANNOUNCEBUILD_STEP)) {
|
||||||
|
preannouncebuildStep = element.getAttribute(PREANNOUNCEBUILD_STEP);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (element.hasAttribute(POSTANNOUNCEBUILD_STEP)) {
|
||||||
|
postannouncebuildStep = element
|
||||||
|
.getAttribute(POSTANNOUNCEBUILD_STEP);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -390,7 +433,19 @@ public class Configuration extends BuildObject implements IConfiguration {
|
||||||
|
|
||||||
if (cleanCommand != null)
|
if (cleanCommand != null)
|
||||||
element.setAttribute(CLEAN_COMMAND, cleanCommand);
|
element.setAttribute(CLEAN_COMMAND, cleanCommand);
|
||||||
|
|
||||||
|
if (prebuildStep != null)
|
||||||
|
element.setAttribute(PREBUILD_STEP, prebuildStep);
|
||||||
|
|
||||||
|
if (postbuildStep != null)
|
||||||
|
element.setAttribute(POSTBUILD_STEP, postbuildStep);
|
||||||
|
|
||||||
|
if (preannouncebuildStep != null)
|
||||||
|
element.setAttribute(PREANNOUNCEBUILD_STEP, preannouncebuildStep);
|
||||||
|
|
||||||
|
if (postannouncebuildStep != null)
|
||||||
|
element.setAttribute(POSTANNOUNCEBUILD_STEP, postannouncebuildStep);
|
||||||
|
|
||||||
// Serialize my children
|
// Serialize my children
|
||||||
Element toolChainElement = doc.createElement(IToolChain.TOOL_CHAIN_ELEMENT_NAME);
|
Element toolChainElement = doc.createElement(IToolChain.TOOL_CHAIN_ELEMENT_NAME);
|
||||||
element.appendChild(toolChainElement);
|
element.appendChild(toolChainElement);
|
||||||
|
@ -783,7 +838,85 @@ public class Configuration extends BuildObject implements IConfiguration {
|
||||||
return new String("make"); //$NON-NLS-1$
|
return new String("make"); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IConfiguration#getPrebuildStep()
|
||||||
|
*/
|
||||||
|
public String getPrebuildStep() {
|
||||||
|
if (prebuildStep == null) {
|
||||||
|
// If I have a parent, ask it
|
||||||
|
if (parent != null) {
|
||||||
|
return parent.getPrebuildStep();
|
||||||
|
} else {
|
||||||
|
// I'm it
|
||||||
|
return EMPTY_STRING;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return prebuildStep;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IConfiguration#getPostbuildStep()
|
||||||
|
*/
|
||||||
|
public String getPostbuildStep() {
|
||||||
|
if (postbuildStep == null) {
|
||||||
|
// If I have a parent, ask it
|
||||||
|
if (parent != null) {
|
||||||
|
return parent.getPostbuildStep();
|
||||||
|
} else {
|
||||||
|
// I'm it
|
||||||
|
return EMPTY_STRING;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return postbuildStep;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IConfiguration#getPreannouncebuildStep()
|
||||||
|
*/
|
||||||
|
public String getPreannouncebuildStep() {
|
||||||
|
if (preannouncebuildStep == null) {
|
||||||
|
// If I have a parent, ask it
|
||||||
|
if (parent != null) {
|
||||||
|
return parent.getPreannouncebuildStep();
|
||||||
|
} else {
|
||||||
|
// I'm it
|
||||||
|
return EMPTY_STRING;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return preannouncebuildStep;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IConfiguration#getPostannouncebuildStep()
|
||||||
|
*/
|
||||||
|
public String getPostannouncebuildStep() {
|
||||||
|
if (postannouncebuildStep == null) {
|
||||||
|
// If I have a parent, ask it
|
||||||
|
if (parent != null) {
|
||||||
|
return parent.getPostannouncebuildStep();
|
||||||
|
} else {
|
||||||
|
// I'm it
|
||||||
|
return EMPTY_STRING;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return postannouncebuildStep;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.cdt.core.build.managed.IConfiguration#getCleanCommand()
|
* @see org.eclipse.cdt.core.build.managed.IConfiguration#getCleanCommand()
|
||||||
*/
|
*/
|
||||||
public String getCleanCommand() {
|
public String getCleanCommand() {
|
||||||
|
@ -805,7 +938,9 @@ public class Configuration extends BuildObject implements IConfiguration {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.cdt.managedbuilder.core.IConfiguration#getErrorParserIds()
|
* @see org.eclipse.cdt.managedbuilder.core.IConfiguration#getErrorParserIds()
|
||||||
*/
|
*/
|
||||||
public String getErrorParserIds() {
|
public String getErrorParserIds() {
|
||||||
|
@ -817,7 +952,8 @@ public class Configuration extends BuildObject implements IConfiguration {
|
||||||
if (parent != null) {
|
if (parent != null) {
|
||||||
errorParsers = parent.getErrorParserIds();
|
errorParsers = parent.getErrorParserIds();
|
||||||
}
|
}
|
||||||
// If no error parsers are specified by the configuration, the default is
|
// If no error parsers are specified by the configuration, the default
|
||||||
|
// is
|
||||||
// the error parsers from the tool-chain
|
// the error parsers from the tool-chain
|
||||||
if (errorParsers == null && toolChain != null) {
|
if (errorParsers == null && toolChain != null) {
|
||||||
errorParsers = toolChain.getErrorParserIds(this);
|
errorParsers = toolChain.getErrorParserIds(this);
|
||||||
|
@ -928,8 +1064,66 @@ public class Configuration extends BuildObject implements IConfiguration {
|
||||||
}
|
}
|
||||||
builder.setCommand(command);
|
builder.setCommand(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IConfiguration#setPrebuildStep(java.lang.String)
|
||||||
|
*/
|
||||||
|
public void setPrebuildStep(String step) {
|
||||||
|
if (step == null && prebuildStep == null) return;
|
||||||
|
if (prebuildStep == null || step == null || !prebuildStep.equals(step)) {
|
||||||
|
prebuildStep = step;
|
||||||
|
setRebuildState(true);
|
||||||
|
isDirty = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IConfiguration#setPostbuildStep(java.lang.String)
|
||||||
|
*/
|
||||||
|
public void setPostbuildStep(String step) {
|
||||||
|
if (step == null && postbuildStep == null) return;
|
||||||
|
if (postbuildStep == null || step == null || !postbuildStep.equals(step)) {
|
||||||
|
postbuildStep = step;
|
||||||
|
setRebuildState(true);
|
||||||
|
isDirty = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IConfiguration#setPreannouncebuildStep(java.lang.String)
|
||||||
|
*/
|
||||||
|
public void setPreannouncebuildStep(String announceStep) {
|
||||||
|
if (announceStep == null && preannouncebuildStep == null) return;
|
||||||
|
if (preannouncebuildStep == null || announceStep == null || !preannouncebuildStep.equals(announceStep)) {
|
||||||
|
preannouncebuildStep = announceStep;
|
||||||
|
setRebuildState(true);
|
||||||
|
isDirty = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IConfiguration#setPostannouncebuildStep(java.lang.String)
|
||||||
|
*/
|
||||||
|
public void setPostannouncebuildStep(String announceStep) {
|
||||||
|
if (announceStep == null && postannouncebuildStep == null) return;
|
||||||
|
if (postannouncebuildStep == null || announceStep == null || !postannouncebuildStep.equals(announceStep)) {
|
||||||
|
postannouncebuildStep = announceStep;
|
||||||
|
setRebuildState(true);
|
||||||
|
isDirty = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.managedbuilder.core.IConfiguration#isSupported()
|
||||||
|
*/
|
||||||
|
public boolean isSupported(){
|
||||||
|
IToolChain toolChain = getToolChain();
|
||||||
|
if(toolChain != null)
|
||||||
|
return toolChain.isSupported();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* O B J E C T S T A T E M A I N T E N A N C E
|
* O B J E C T S T A T E M A I N T E N A N C E
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2002,2005 IBM Corporation and others.
|
* Copyright (c) 2002, 2005 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v0.5
|
* are made available under the terms of the Common Public License v0.5
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -29,6 +29,7 @@ import org.eclipse.cdt.core.IMarkerGenerator;
|
||||||
import org.eclipse.cdt.core.model.ICModelMarker;
|
import org.eclipse.cdt.core.model.ICModelMarker;
|
||||||
import org.eclipse.cdt.core.resources.ACBuilder;
|
import org.eclipse.cdt.core.resources.ACBuilder;
|
||||||
import org.eclipse.cdt.core.resources.IConsole;
|
import org.eclipse.cdt.core.resources.IConsole;
|
||||||
|
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
||||||
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
|
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
|
||||||
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
|
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
|
||||||
import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
|
import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
|
||||||
|
@ -166,6 +167,7 @@ public class GeneratedMakefileBuilder extends ACBuilder {
|
||||||
private static final String TYPE_CLEAN = "ManagedMakeBuilder.type.clean"; //$NON-NLS-1$
|
private static final String TYPE_CLEAN = "ManagedMakeBuilder.type.clean"; //$NON-NLS-1$
|
||||||
private static final String TYPE_FULL = "ManagedMakeBuilder.type.full"; //$NON-NLS-1$
|
private static final String TYPE_FULL = "ManagedMakeBuilder.type.full"; //$NON-NLS-1$
|
||||||
private static final String TYPE_INC = "ManagedMakeBuider.type.incremental"; //$NON-NLS-1$
|
private static final String TYPE_INC = "ManagedMakeBuider.type.incremental"; //$NON-NLS-1$
|
||||||
|
private static final String WARNING_UNSUPPORTED_CONFIGURATION = "ManagedMakeBuilder.warning.unsupported.configuration"; //$NON-NLS-1$
|
||||||
public static boolean VERBOSE = false;
|
public static boolean VERBOSE = false;
|
||||||
|
|
||||||
// Local variables
|
// Local variables
|
||||||
|
@ -431,6 +433,7 @@ public class GeneratedMakefileBuilder extends ACBuilder {
|
||||||
|
|
||||||
/* (non-javadoc)
|
/* (non-javadoc)
|
||||||
* Answers an array of strings with the proper make targets
|
* Answers an array of strings with the proper make targets
|
||||||
|
* for a build with no custom prebuild/postbuild steps
|
||||||
*
|
*
|
||||||
* @param fullBuild
|
* @param fullBuild
|
||||||
* @return
|
* @return
|
||||||
|
@ -541,9 +544,10 @@ public class GeneratedMakefileBuilder extends ACBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @param fullBuild
|
* @param buildType
|
||||||
* @param buildDir
|
* @param buildDir
|
||||||
* @param info
|
* @param info
|
||||||
|
* @param generator
|
||||||
* @param monitor
|
* @param monitor
|
||||||
*/
|
*/
|
||||||
protected void invokeMake(int buildType, IPath buildDir, IManagedBuildInfo info, IManagedBuilderMakefileGenerator generator, IProgressMonitor monitor) {
|
protected void invokeMake(int buildType, IPath buildDir, IManagedBuildInfo info, IManagedBuilderMakefileGenerator generator, IProgressMonitor monitor) {
|
||||||
|
@ -601,23 +605,18 @@ public class GeneratedMakefileBuilder extends ACBuilder {
|
||||||
buf.append(ManagedMakeMessages.getFormattedString(CONSOLE_HEADER, consoleHeader));
|
buf.append(ManagedMakeMessages.getFormattedString(CONSOLE_HEADER, consoleHeader));
|
||||||
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
|
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
|
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
|
||||||
|
IConfiguration cfg = info.getDefaultConfiguration();
|
||||||
|
if(!cfg.isSupported()){
|
||||||
|
buf.append(ManagedMakeMessages.getFormattedString(WARNING_UNSUPPORTED_CONFIGURATION,new String[] {cfg.getName(),cfg.getToolChain().getName()}));
|
||||||
|
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
}
|
||||||
consoleOutStream.write(buf.toString().getBytes());
|
consoleOutStream.write(buf.toString().getBytes());
|
||||||
consoleOutStream.flush();
|
consoleOutStream.flush();
|
||||||
|
|
||||||
// Remove all markers for this project
|
// Remove all markers for this project
|
||||||
removeAllMarkers(currentProject);
|
removeAllMarkers(currentProject);
|
||||||
|
|
||||||
// Get the arguments to be passed to make from build model
|
|
||||||
ArrayList makeArgs = new ArrayList();
|
|
||||||
String arg = info.getBuildArguments();
|
|
||||||
if (arg.length() > 0) {
|
|
||||||
String[] args = arg.split("\\s"); //$NON-NLS-1$
|
|
||||||
for (int i = 0; i < args.length; ++i) {
|
|
||||||
makeArgs.add(args[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
makeArgs.addAll(Arrays.asList(getMakeTargets(buildType)));
|
|
||||||
String[] makeTargets = (String[]) makeArgs.toArray(new String[makeArgs.size()]);
|
|
||||||
|
|
||||||
// Get a launcher for the make command
|
// Get a launcher for the make command
|
||||||
String errMsg = null;
|
String errMsg = null;
|
||||||
|
@ -646,58 +645,173 @@ public class GeneratedMakefileBuilder extends ACBuilder {
|
||||||
OutputStream stdout = epm.getOutputStream();
|
OutputStream stdout = epm.getOutputStream();
|
||||||
OutputStream stderr = epm.getOutputStream();
|
OutputStream stderr = epm.getOutputStream();
|
||||||
|
|
||||||
// Launch make
|
// Get the arguments to be passed to make from build model
|
||||||
Process proc = launcher.execute(makeCommand, makeTargets, env, workingDirectory);
|
ArrayList makeArgs = new ArrayList();
|
||||||
if (proc != null) {
|
String arg = info.getBuildArguments();
|
||||||
try {
|
if (arg.length() > 0) {
|
||||||
// Close the input of the process since we will never write to it
|
String[] args = arg.split("\\s"); //$NON-NLS-1$
|
||||||
proc.getOutputStream().close();
|
for (int i = 0; i < args.length; ++i) {
|
||||||
} catch (IOException e) {
|
makeArgs.add(args[i]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (launcher.waitAndRead(stdout, stderr, new SubProgressMonitor(monitor, IProgressMonitor.UNKNOWN)) != CommandLauncher.OK) {
|
|
||||||
|
String[] makeTargets;
|
||||||
|
String prebuildStep = info.getPrebuildStep();
|
||||||
|
boolean prebuildStepPresent = (prebuildStep.length() > 0);
|
||||||
|
Process proc = null;
|
||||||
|
boolean isuptodate = false;
|
||||||
|
|
||||||
|
if (prebuildStepPresent) {
|
||||||
|
ArrayList premakeArgs = (ArrayList) makeArgs.clone();
|
||||||
|
String[] premakeTargets;
|
||||||
|
switch (buildType) {
|
||||||
|
case INCREMENTAL_BUILD: {
|
||||||
|
// For an incremental build with a prebuild step:
|
||||||
|
// Check the status of the main build with "make -q main-build"
|
||||||
|
// If up to date:
|
||||||
|
// then: don't invoke the prebuild step, which should be run only if
|
||||||
|
// something needs to be built in the main build
|
||||||
|
// else: invoke the prebuild step and the main build step
|
||||||
|
boolean quit = false;
|
||||||
|
premakeArgs.add("-q"); //$NON-NLS-1$
|
||||||
|
premakeArgs.add("main-build"); //$NON-NLS-1$
|
||||||
|
premakeTargets = (String[]) premakeArgs
|
||||||
|
.toArray(new String[premakeArgs.size()]);
|
||||||
|
proc = launcher.execute(makeCommand, premakeTargets,
|
||||||
|
env, workingDirectory);
|
||||||
|
if (proc != null) {
|
||||||
|
try {
|
||||||
|
// Close the input of the process since we will never write to it
|
||||||
|
proc.getOutputStream().close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
}
|
||||||
|
if (launcher.waitAndRead(stdout, stderr,
|
||||||
|
new SubProgressMonitor(monitor,
|
||||||
|
IProgressMonitor.UNKNOWN)) != CommandLauncher.OK) {
|
||||||
|
errMsg = launcher.getErrorMessage();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
errMsg = launcher.getErrorMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((errMsg != null && errMsg.length() > 0)
|
||||||
|
|| proc == null) {
|
||||||
|
// Can't tell if the build is needed, so assume it is, and let any errors be triggered
|
||||||
|
// when the "real" build is invoked below
|
||||||
|
makeArgs.add("pre-build"); //$NON-NLS-1$
|
||||||
|
makeArgs.add("main-build"); //$NON-NLS-1$
|
||||||
|
} else {
|
||||||
|
// The "make -q" command launch was successful
|
||||||
|
if (proc.exitValue() == 0) {
|
||||||
|
// If the status value returned from "make -q" is 0, then the build state is up-to-date
|
||||||
|
isuptodate = true;
|
||||||
|
// Report that the build was up to date, and thus nothing needs to be built
|
||||||
|
String uptodateMsg = ManagedMakeMessages
|
||||||
|
.getFormattedString(NOTHING_BUILT,
|
||||||
|
currentProject.getName());
|
||||||
|
buf.append(uptodateMsg);
|
||||||
|
buf.append(System.getProperty(
|
||||||
|
"line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
|
||||||
|
// Write message on the console
|
||||||
|
consoleOutStream.write(buf.toString()
|
||||||
|
.getBytes());
|
||||||
|
consoleOutStream.flush();
|
||||||
|
consoleOutStream.close();
|
||||||
|
stdout.close();
|
||||||
|
stderr.close();
|
||||||
|
} else {
|
||||||
|
// The status value was other than 0, so press on with the build process
|
||||||
|
makeArgs.add("pre-build"); //$NON-NLS-1$
|
||||||
|
makeArgs.add("main-build"); //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case FULL_BUILD: {
|
||||||
|
makeArgs.add("clean"); //$NON-NLS-1$
|
||||||
|
makeArgs.add("pre-build"); //$NON-NLS-1$
|
||||||
|
makeArgs.add("main-build"); //$NON-NLS-1$
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CLEAN_BUILD: {
|
||||||
|
makeArgs.add("clean"); //$NON-NLS-1$
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// No prebuild step
|
||||||
|
//
|
||||||
|
makeArgs.addAll(Arrays.asList(getMakeTargets(buildType)));
|
||||||
|
}
|
||||||
|
|
||||||
|
makeTargets = (String[]) makeArgs.toArray(new String[makeArgs
|
||||||
|
.size()]);
|
||||||
|
|
||||||
|
// Launch make - main invocation
|
||||||
|
if (!isuptodate) {
|
||||||
|
proc = launcher.execute(makeCommand, makeTargets, env,
|
||||||
|
workingDirectory);
|
||||||
|
if (proc != null) {
|
||||||
|
try {
|
||||||
|
// Close the input of the process since we will never write to it
|
||||||
|
proc.getOutputStream().close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
}
|
||||||
|
|
||||||
|
if (launcher.waitAndRead(stdout, stderr,
|
||||||
|
new SubProgressMonitor(monitor,
|
||||||
|
IProgressMonitor.UNKNOWN)) != CommandLauncher.OK) {
|
||||||
|
errMsg = launcher.getErrorMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Force a resync of the projects without allowing the user to cancel.
|
||||||
|
// This is probably unkind, but short of this there is no way to insure
|
||||||
|
// the UI is up-to-date with the build results
|
||||||
|
monitor.subTask(ManagedMakeMessages
|
||||||
|
.getResourceString(REFRESH));
|
||||||
|
try {
|
||||||
|
currentProject.refreshLocal(
|
||||||
|
IResource.DEPTH_INFINITE, null);
|
||||||
|
} catch (CoreException e) {
|
||||||
|
monitor.subTask(ManagedMakeMessages
|
||||||
|
.getResourceString(REFRESH_ERROR));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
errMsg = launcher.getErrorMessage();
|
errMsg = launcher.getErrorMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Force a resync of the projects without allowing the user to cancel.
|
// Report either the success or failure of our mission
|
||||||
// This is probably unkind, but short of this there is no way to insure
|
buf = new StringBuffer();
|
||||||
// the UI is up-to-date with the build results
|
if (errMsg != null && errMsg.length() > 0) {
|
||||||
monitor.subTask(ManagedMakeMessages.getResourceString(REFRESH));
|
String errorDesc = ManagedMakeMessages
|
||||||
try {
|
.getResourceString(BUILD_ERROR);
|
||||||
currentProject.refreshLocal(IResource.DEPTH_INFINITE, null);
|
buf.append(errorDesc);
|
||||||
} catch (CoreException e) {
|
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
|
||||||
monitor.subTask(ManagedMakeMessages.getResourceString(REFRESH_ERROR));
|
buf.append("(").append(errMsg).append(")"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
} else {
|
||||||
|
// Report a successful build
|
||||||
|
String successMsg = ManagedMakeMessages
|
||||||
|
.getFormattedString(BUILD_FINISHED,
|
||||||
|
currentProject.getName());
|
||||||
|
buf.append(successMsg);
|
||||||
|
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
errMsg = launcher.getErrorMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Report either the success or failure of our mission
|
|
||||||
buf = new StringBuffer();
|
|
||||||
if (errMsg != null && errMsg.length() > 0) {
|
|
||||||
String errorDesc = ManagedMakeMessages.getResourceString(BUILD_ERROR);
|
|
||||||
buf.append(errorDesc);
|
|
||||||
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
|
|
||||||
buf.append("(").append(errMsg).append(")"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
||||||
} else {
|
|
||||||
// Report a successful build
|
|
||||||
String successMsg = ManagedMakeMessages.getFormattedString(BUILD_FINISHED, currentProject.getName());
|
|
||||||
buf.append(successMsg);
|
|
||||||
buf.append(System.getProperty("line.separator", "\n")); //$NON-NLS-1$//$NON-NLS-2$
|
|
||||||
}
|
|
||||||
|
|
||||||
// Write message on the console
|
// Write message on the console
|
||||||
consoleOutStream.write(buf.toString().getBytes());
|
consoleOutStream.write(buf.toString().getBytes());
|
||||||
consoleOutStream.flush();
|
consoleOutStream.flush();
|
||||||
stdout.close();
|
stdout.close();
|
||||||
stderr.close();
|
stderr.close();
|
||||||
|
|
||||||
// Generate any error markers that the build has discovered
|
// Generate any error markers that the build has discovered
|
||||||
monitor.subTask(ManagedMakeMessages.getResourceString(MARKERS));
|
monitor.subTask(ManagedMakeMessages
|
||||||
addBuilderMarkers(epm);
|
.getResourceString(MARKERS));
|
||||||
epm.reportProblems();
|
addBuilderMarkers(epm);
|
||||||
consoleOutStream.close();
|
epm.reportProblems();
|
||||||
}
|
consoleOutStream.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
forgetLastBuiltState();
|
forgetLastBuiltState();
|
||||||
} finally {
|
} finally {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2002,2005 IBM Software Corporation and others.
|
* Copyright (c) 2002, 2005 IBM Software Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v0.5
|
* are made available under the terms of the Common Public License v0.5
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -240,7 +240,14 @@ public class ManagedBuildInfo implements IManagedBuildInfo, IScannerInfo {
|
||||||
}
|
}
|
||||||
if (defaultConfig == null) {
|
if (defaultConfig == null) {
|
||||||
IConfiguration[] configs = managedProject.getConfigurations();
|
IConfiguration[] configs = managedProject.getConfigurations();
|
||||||
if (configs.length > 0) {
|
for (int i = 0; i < configs.length; i++){
|
||||||
|
if (configs[i].isSupported()){
|
||||||
|
defaultConfig = configs[i];
|
||||||
|
defaultConfigId = defaultConfig.getId();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (defaultConfig == null && configs.length > 0) {
|
||||||
defaultConfig = configs[0];
|
defaultConfig = configs[0];
|
||||||
defaultConfigId = defaultConfig.getId();
|
defaultConfigId = defaultConfig.getId();
|
||||||
}
|
}
|
||||||
|
@ -514,7 +521,69 @@ public class ManagedBuildInfo implements IManagedBuildInfo, IScannerInfo {
|
||||||
return EMPTY_STRING;
|
return EMPTY_STRING;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getPrebuildStep()
|
||||||
|
*/
|
||||||
|
public String getPrebuildStep() {
|
||||||
|
// Get the default configuration and use its value
|
||||||
|
String name = new String();
|
||||||
|
IConfiguration config = getDefaultConfiguration();
|
||||||
|
if (config != null) {
|
||||||
|
name = config.getPrebuildStep();
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getPostbuildStep()
|
||||||
|
*/
|
||||||
|
public String getPostbuildStep() {
|
||||||
|
// Get the default configuration and use its value
|
||||||
|
String name = new String();
|
||||||
|
IConfiguration config = getDefaultConfiguration();
|
||||||
|
if (config != null) {
|
||||||
|
name = config.getPostbuildStep();
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getPreannouncebuildStep()
|
||||||
|
*/
|
||||||
|
public String getPreannouncebuildStep() {
|
||||||
|
// Get the default configuration and use its value
|
||||||
|
String name = new String();
|
||||||
|
IConfiguration config = getDefaultConfiguration();
|
||||||
|
if (config != null) {
|
||||||
|
name = config.getPreannouncebuildStep();
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getPostannouncebuildStep()
|
||||||
|
*/
|
||||||
|
public String getPostannouncebuildStep() {
|
||||||
|
// Get the default configuration and use its value
|
||||||
|
String name = new String();
|
||||||
|
IConfiguration config = getDefaultConfiguration();
|
||||||
|
if (config != null) {
|
||||||
|
name = config.getPostannouncebuildStep();
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputExtension(java.lang.String)
|
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputExtension(java.lang.String)
|
||||||
*/
|
*/
|
||||||
public String getOutputExtension(String resourceExtension) {
|
public String getOutputExtension(String resourceExtension) {
|
||||||
|
@ -530,7 +599,9 @@ public class ManagedBuildInfo implements IManagedBuildInfo, IScannerInfo {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputFlag()
|
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputFlag()
|
||||||
*/
|
*/
|
||||||
public String getOutputFlag(String outputExt) {
|
public String getOutputFlag(String outputExt) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# Copyright (c) 2002,2003 Rational Software Corporation and others.
|
# Copyright (c) 2002, 2005 Rational Software Corporation and others.
|
||||||
# All rights reserved. This program and the accompanying materials
|
# All rights reserved. This program and the accompanying materials
|
||||||
# are made available under the terms of the Common Public License v0.5
|
# are made available under the terms of the Common Public License v0.5
|
||||||
# which accompanies this distribution, and is available at
|
# which accompanies this distribution, and is available at
|
||||||
|
@ -29,6 +29,7 @@ ManagedMakeBuilder.message.clean.build.clean=Trying a make clean in {0}
|
||||||
ManagedMakeBuilder.type.clean = Clean-only build
|
ManagedMakeBuilder.type.clean = Clean-only build
|
||||||
ManagedMakeBuilder.type.full = Full rebuild
|
ManagedMakeBuilder.type.full = Full rebuild
|
||||||
ManagedMakeBuider.type.incremental = Incremental build
|
ManagedMakeBuider.type.incremental = Incremental build
|
||||||
|
ManagedMakeBuilder.warning.unsupported.configuration=**** WARNING: The "{0}" Configuration may not build ****\n**** because it uses the "{1}" ****\n**** tool-chain that is unsupported on this system. ****\n\n**** Attempting to build... ****
|
||||||
|
|
||||||
# Option exception messages
|
# Option exception messages
|
||||||
Option.error.bad_value_type=Bad value for type
|
Option.error.bad_value_type=Bad value for type
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2004 Intel Corporation and others.
|
* Copyright (c) 2004, 2005 Intel Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -338,4 +338,16 @@ public class ProjectType extends BuildObject implements IProjectType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IProjectType#isSupported()
|
||||||
|
*/
|
||||||
|
public boolean isSupported(){
|
||||||
|
Iterator configIter = getConfigurationList().iterator();
|
||||||
|
while (configIter.hasNext()) {
|
||||||
|
Configuration current = (Configuration)configIter.next();
|
||||||
|
if(current.isSupported())
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2003,2004 IBM Corporation and others.
|
* Copyright (c) 2003, 2005 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -1034,7 +1034,7 @@ public class Target extends BuildObject implements ITarget {
|
||||||
targetPlatform.setIsAbstract(isAbstract);
|
targetPlatform.setIsAbstract(isAbstract);
|
||||||
targetPlatform.setOSList(getTargetOSList());
|
targetPlatform.setOSList(getTargetOSList());
|
||||||
targetPlatform.setArchList(getTargetArchList());
|
targetPlatform.setArchList(getTargetArchList());
|
||||||
targetPlatform.setBinaryParserId(getBinaryParserId());
|
targetPlatform.setBinaryParserList(new String[]{getBinaryParserId()}); // Older projects will always have only one binary parser set.
|
||||||
|
|
||||||
// Handle ConfigurationV2 children (ToolReference)
|
// Handle ConfigurationV2 children (ToolReference)
|
||||||
// The tools references fetched here are strictly local to the configuration,
|
// The tools references fetched here are strictly local to the configuration,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2004 Intel Corporation and others.
|
* Copyright (c) 2004, 2005 Intel Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -38,7 +38,7 @@ public class TargetPlatform extends BuildObject implements ITargetPlatform {
|
||||||
private Boolean isAbstract;
|
private Boolean isAbstract;
|
||||||
private List osList;
|
private List osList;
|
||||||
private List archList;
|
private List archList;
|
||||||
private String binaryParserId;
|
private List binaryParserList;
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
private boolean isExtensionTargetPlatform = false;
|
private boolean isExtensionTargetPlatform = false;
|
||||||
private boolean isDirty = false;
|
private boolean isDirty = false;
|
||||||
|
@ -146,8 +146,8 @@ public class TargetPlatform extends BuildObject implements ITargetPlatform {
|
||||||
if (targetPlatform.archList != null) {
|
if (targetPlatform.archList != null) {
|
||||||
archList = new ArrayList(targetPlatform.archList);
|
archList = new ArrayList(targetPlatform.archList);
|
||||||
}
|
}
|
||||||
if (targetPlatform.binaryParserId != null) {
|
if (targetPlatform.binaryParserList != null) {
|
||||||
binaryParserId = new String(targetPlatform.binaryParserId);
|
binaryParserList = new ArrayList(targetPlatform.binaryParserList);
|
||||||
}
|
}
|
||||||
|
|
||||||
setDirty(true);
|
setDirty(true);
|
||||||
|
@ -204,8 +204,15 @@ public class TargetPlatform extends BuildObject implements ITargetPlatform {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the ID of the binary parser
|
// Get the IDs of the binary parsers from a semi-colon-separated list.
|
||||||
binaryParserId = element.getAttribute(BINARY_PARSER);
|
String bpars = element.getAttribute(BINARY_PARSER);
|
||||||
|
if (bpars != null) {
|
||||||
|
binaryParserList = new ArrayList();
|
||||||
|
String[] bparsTokens = bpars.split(";"); //$NON-NLS-1$
|
||||||
|
for (int j = 0; j < bparsTokens.length; ++j) {
|
||||||
|
binaryParserList.add(bparsTokens[j].trim());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -270,9 +277,16 @@ public class TargetPlatform extends BuildObject implements ITargetPlatform {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// binaryParserId
|
// Get the semi-colon-separated list of binaryParserIds
|
||||||
if (element.hasAttribute(BINARY_PARSER)) {
|
if (element.hasAttribute(BINARY_PARSER)) {
|
||||||
binaryParserId = element.getAttribute(BINARY_PARSER);
|
String bpars = element.getAttribute(BINARY_PARSER);
|
||||||
|
if (bpars != null) {
|
||||||
|
binaryParserList = new ArrayList();
|
||||||
|
String[] bparsTokens = bpars.split(";"); //$NON-NLS-1$
|
||||||
|
for (int j = 0; j < bparsTokens.length; ++j) {
|
||||||
|
binaryParserList.add(bparsTokens[j].trim());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -301,8 +315,17 @@ public class TargetPlatform extends BuildObject implements ITargetPlatform {
|
||||||
element.setAttribute(IProjectType.IS_ABSTRACT, isAbstract.toString());
|
element.setAttribute(IProjectType.IS_ABSTRACT, isAbstract.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (binaryParserId != null) {
|
if (binaryParserList != null) {
|
||||||
element.setAttribute(BINARY_PARSER, binaryParserId);
|
Iterator bparsIter = binaryParserList.listIterator();
|
||||||
|
String listValue = EMPTY_STRING;
|
||||||
|
while (bparsIter.hasNext()) {
|
||||||
|
String current = (String) bparsIter.next();
|
||||||
|
listValue += current;
|
||||||
|
if ((bparsIter.hasNext())) {
|
||||||
|
listValue += ";"; //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
}
|
||||||
|
element.setAttribute(BINARY_PARSER, listValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (osList != null) {
|
if (osList != null) {
|
||||||
|
@ -386,18 +409,28 @@ public class TargetPlatform extends BuildObject implements ITargetPlatform {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.eclipse.cdt.core.build.managed.ITargetPlatform#getBinaryParserI()
|
* @see org.eclipse.cdt.core.build.managed.ITargetPlatform#getBinaryParserId()
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
public String getBinaryParserId() {
|
public String getBinaryParserId() {
|
||||||
if (binaryParserId == null) {
|
String[] ids = getBinaryParserList();
|
||||||
|
if (ids.length > 0) return ids[0];
|
||||||
|
return EMPTY_STRING;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.ITargetPlatform#getBinaryParserList()
|
||||||
|
*/
|
||||||
|
public String[] getBinaryParserList() {
|
||||||
|
if (binaryParserList == null) {
|
||||||
// If I have a superClass, ask it
|
// If I have a superClass, ask it
|
||||||
if (superClass != null) {
|
if (superClass != null) {
|
||||||
return superClass.getBinaryParserId();
|
return superClass.getBinaryParserList();
|
||||||
} else {
|
} else {
|
||||||
return EMPTY_STRING;
|
return new String[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return binaryParserId;
|
return (String[]) binaryParserList.toArray(new String[binaryParserList.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -434,13 +467,26 @@ public class TargetPlatform extends BuildObject implements ITargetPlatform {
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.eclipse.cdt.core.build.managed.IBuilder#setBinaryParserId(String)
|
* @see org.eclipse.cdt.core.build.managed.IBuilder#setBinaryParserId(String)
|
||||||
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
public void setBinaryParserId(String id) {
|
public void setBinaryParserId(String id) {
|
||||||
if (id == null && binaryParserId == null) return;
|
String[] ids = new String[]{id};
|
||||||
if (binaryParserId == null || id == null || !id.equals(binaryParserId)) {
|
setBinaryParserList(ids);
|
||||||
binaryParserId = id;
|
}
|
||||||
setDirty(true);
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.core.build.managed.IBuilder#setBinaryParserList(String[])
|
||||||
|
*/
|
||||||
|
public void setBinaryParserList(String[] ids) {
|
||||||
|
if (binaryParserList == null) {
|
||||||
|
binaryParserList = new ArrayList();
|
||||||
|
} else {
|
||||||
|
binaryParserList.clear();
|
||||||
}
|
}
|
||||||
|
for (int i = 0; i < ids.length; i++) {
|
||||||
|
binaryParserList.add(ids[i]);
|
||||||
|
}
|
||||||
|
setDirty(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2004 Intel Corporation and others.
|
* Copyright (c) 2004, 2005 Intel Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -21,11 +21,14 @@ import org.eclipse.cdt.managedbuilder.core.IBuildObject;
|
||||||
import org.eclipse.cdt.managedbuilder.core.IBuilder;
|
import org.eclipse.cdt.managedbuilder.core.IBuilder;
|
||||||
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
||||||
import org.eclipse.cdt.managedbuilder.core.IManagedConfigElement;
|
import org.eclipse.cdt.managedbuilder.core.IManagedConfigElement;
|
||||||
|
import org.eclipse.cdt.managedbuilder.core.IManagedIsToolChainSupported;
|
||||||
import org.eclipse.cdt.managedbuilder.core.IProjectType;
|
import org.eclipse.cdt.managedbuilder.core.IProjectType;
|
||||||
import org.eclipse.cdt.managedbuilder.core.ITargetPlatform;
|
import org.eclipse.cdt.managedbuilder.core.ITargetPlatform;
|
||||||
import org.eclipse.cdt.managedbuilder.core.ITool;
|
import org.eclipse.cdt.managedbuilder.core.ITool;
|
||||||
import org.eclipse.cdt.managedbuilder.core.IToolChain;
|
import org.eclipse.cdt.managedbuilder.core.IToolChain;
|
||||||
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
|
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
|
||||||
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.core.runtime.IConfigurationElement;
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.w3c.dom.Node;
|
import org.w3c.dom.Node;
|
||||||
|
@ -51,6 +54,8 @@ public class ToolChain extends BuildObject implements IToolChain {
|
||||||
private List archList;
|
private List archList;
|
||||||
private Boolean isAbstract;
|
private Boolean isAbstract;
|
||||||
private String scannerConfigDiscoveryProfileId;
|
private String scannerConfigDiscoveryProfileId;
|
||||||
|
private IConfigurationElement managedIsToolChainSupportedElement = null;
|
||||||
|
private IManagedIsToolChainSupported managedIsToolChainSupported = null;
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
private boolean isExtensionToolChain = false;
|
private boolean isExtensionToolChain = false;
|
||||||
private boolean isDirty = false;
|
private boolean isDirty = false;
|
||||||
|
@ -208,6 +213,8 @@ public class ToolChain extends BuildObject implements IToolChain {
|
||||||
if (toolChain.scannerConfigDiscoveryProfileId != null) {
|
if (toolChain.scannerConfigDiscoveryProfileId != null) {
|
||||||
scannerConfigDiscoveryProfileId = new String(toolChain.scannerConfigDiscoveryProfileId);
|
scannerConfigDiscoveryProfileId = new String(toolChain.scannerConfigDiscoveryProfileId);
|
||||||
}
|
}
|
||||||
|
managedIsToolChainSupportedElement = toolChain.managedIsToolChainSupportedElement;
|
||||||
|
managedIsToolChainSupported = toolChain.managedIsToolChainSupported;
|
||||||
|
|
||||||
// Clone the children
|
// Clone the children
|
||||||
if (toolChain.builder != null) {
|
if (toolChain.builder != null) {
|
||||||
|
@ -314,6 +321,12 @@ public class ToolChain extends BuildObject implements IToolChain {
|
||||||
archList.add(archTokens[j].trim());
|
archList.add(archTokens[j].trim());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get the isToolchainSupported configuration element
|
||||||
|
String managedIsToolChainSupported = element.getAttribute(IS_TOOL_CHAIN_SUPPORTED);
|
||||||
|
if (managedIsToolChainSupported != null && element instanceof DefaultManagedConfigElement) {
|
||||||
|
managedIsToolChainSupportedElement = ((DefaultManagedConfigElement)element).getConfigurationElement();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -467,6 +480,12 @@ public class ToolChain extends BuildObject implements IToolChain {
|
||||||
tool.serialize(doc, toolElement);
|
tool.serialize(doc, toolElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Note: isToolChainSupported cannot be specified in a project file because
|
||||||
|
// an IConfigurationElement is needed to load it!
|
||||||
|
if (managedIsToolChainSupportedElement != null) {
|
||||||
|
// TODO: issue warning?
|
||||||
|
}
|
||||||
|
|
||||||
// I am clean now
|
// I am clean now
|
||||||
isDirty = false;
|
isDirty = false;
|
||||||
}
|
}
|
||||||
|
@ -974,4 +993,33 @@ public class ToolChain extends BuildObject implements IToolChain {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IManagedIsToolChainSupported getIsToolChainSupported(){
|
||||||
|
if(managedIsToolChainSupported == null && managedIsToolChainSupportedElement != null){
|
||||||
|
try{
|
||||||
|
if(managedIsToolChainSupportedElement.getAttribute(IS_TOOL_CHAIN_SUPPORTED) != null)
|
||||||
|
managedIsToolChainSupported =
|
||||||
|
(IManagedIsToolChainSupported)managedIsToolChainSupportedElement.createExecutableExtension(IS_TOOL_CHAIN_SUPPORTED);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch(CoreException e){
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return managedIsToolChainSupported;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.managedbuilder.core.IToolChain#isSupported()
|
||||||
|
*/
|
||||||
|
public boolean isSupported(){
|
||||||
|
IManagedIsToolChainSupported isSupported = getIsToolChainSupported();
|
||||||
|
if(isSupported != null){
|
||||||
|
//TODO: pass the version to the "isSupported" method
|
||||||
|
return isSupported.isSupported(this,null,null);
|
||||||
|
}
|
||||||
|
else if(superClass != null)
|
||||||
|
return superClass.isSupported();
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2004 IBM Corporation and others.
|
* Copyright (c) 2004, 2005 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -28,9 +28,11 @@ public interface IManagedBuilderMakefileGenerator {
|
||||||
public final String COLON = ":"; //$NON-NLS-1$
|
public final String COLON = ":"; //$NON-NLS-1$
|
||||||
public final int COLS_PER_LINE = 80;
|
public final int COLS_PER_LINE = 80;
|
||||||
public final String COMMENT_SYMBOL = "#"; //$NON-NLS-1$
|
public final String COMMENT_SYMBOL = "#"; //$NON-NLS-1$
|
||||||
|
public final String DOLLAR_SYMBOL = "$"; //$NON-NLS-1$
|
||||||
public final String DEP_EXT = "d"; //$NON-NLS-1$
|
public final String DEP_EXT = "d"; //$NON-NLS-1$
|
||||||
public final String DEPFILE_NAME = "subdir.dep"; //$NON-NLS-1$
|
public final String DEPFILE_NAME = "subdir.dep"; //$NON-NLS-1$
|
||||||
public final String DOT = "."; //$NON-NLS-1$
|
public final String DOT = "."; //$NON-NLS-1$
|
||||||
|
public final String DASH = "-"; //$NON-NLS-1$
|
||||||
public final String ECHO = "echo"; //$NON-NLS-1$
|
public final String ECHO = "echo"; //$NON-NLS-1$
|
||||||
public final String IN_MACRO = "$<"; //$NON-NLS-1$
|
public final String IN_MACRO = "$<"; //$NON-NLS-1$
|
||||||
public final String LINEBREAK = "\\\n"; //$NON-NLS-1$
|
public final String LINEBREAK = "\\\n"; //$NON-NLS-1$
|
||||||
|
@ -39,6 +41,8 @@ public interface IManagedBuilderMakefileGenerator {
|
||||||
public final String MAKEFILE_INIT = "makefile.init"; //$NON-NLS-1$
|
public final String MAKEFILE_INIT = "makefile.init"; //$NON-NLS-1$
|
||||||
public final String MAKEFILE_NAME = "makefile"; //$NON-NLS-1$
|
public final String MAKEFILE_NAME = "makefile"; //$NON-NLS-1$
|
||||||
public final String MAKEFILE_TARGETS = "makefile.targets"; //$NON-NLS-1$
|
public final String MAKEFILE_TARGETS = "makefile.targets"; //$NON-NLS-1$
|
||||||
|
public final String MAKE = "$(MAKE)"; //$NON-NLS-1$
|
||||||
|
public final String NO_PRINT_DIR = "--no-print-directory"; //$NON-NLS-1$
|
||||||
|
|
||||||
public final String MODFILE_NAME = "subdir.mk"; //$NON-NLS-1$
|
public final String MODFILE_NAME = "subdir.mk"; //$NON-NLS-1$
|
||||||
public final String NEWLINE = System.getProperty("line.separator"); //$NON-NLS-1$
|
public final String NEWLINE = System.getProperty("line.separator"); //$NON-NLS-1$
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2003,2005 IBM Corporation and others.
|
* Copyright (c) 2003, 2005 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v0.5
|
* are made available under the terms of the Common Public License v0.5
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -601,6 +601,15 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator {
|
||||||
String flags = info.getFlagsForConfiguration(extension);
|
String flags = info.getFlagsForConfiguration(extension);
|
||||||
String outflag = info.getOutputFlag(extension);
|
String outflag = info.getOutputFlag(extension);
|
||||||
String outputPrefix = info.getOutputPrefix(extension);
|
String outputPrefix = info.getOutputPrefix(extension);
|
||||||
|
String prebuildStep = info.getPrebuildStep();
|
||||||
|
prebuildStep.trim(); // Remove leading and trailing whitespace (and control characters)
|
||||||
|
String postbuildStep = info.getPostbuildStep();
|
||||||
|
postbuildStep.trim(); // Remove leading and trailing whitespace (and control characters)
|
||||||
|
String preannouncebuildStep = info.getPreannouncebuildStep();
|
||||||
|
String postannouncebuildStep = info.getPostannouncebuildStep();
|
||||||
|
String prebuild = "pre-build"; //$NON-NLS-1$
|
||||||
|
String mainbuild = "main-build"; //$NON-NLS-1$
|
||||||
|
String postbuild = "post-build"; //$NON-NLS-1$
|
||||||
String targets = rebuild ? "clean all" : "all"; //$NON-NLS-1$ //$NON-NLS-2$
|
String targets = rebuild ? "clean all" : "all"; //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
|
||||||
// Get all the projects the build target depends on
|
// Get all the projects the build target depends on
|
||||||
|
@ -612,9 +621,32 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator {
|
||||||
// and neither conditions apply if we are building for it ....
|
// and neither conditions apply if we are building for it ....
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write out the all target first in case someone just runs make
|
// If a prebuild step exists, redefine the all target to be
|
||||||
// all: targ_<target_name>
|
// all: {pre-build} main-build
|
||||||
|
// and then reset the "traditional" all target to main-build
|
||||||
|
// This will allow something meaningful to happen if the generated
|
||||||
|
// makefile is
|
||||||
|
// extracted and run standalone via "make all"
|
||||||
|
//
|
||||||
String defaultTarget = "all:"; //$NON-NLS-1$
|
String defaultTarget = "all:"; //$NON-NLS-1$
|
||||||
|
if (prebuildStep.length() > 0) {
|
||||||
|
|
||||||
|
buffer.append(defaultTarget + WHITESPACE);
|
||||||
|
buffer.append(prebuild + WHITESPACE);
|
||||||
|
|
||||||
|
// Reset defaultTarget for now and for subsequent use, below
|
||||||
|
defaultTarget = mainbuild;
|
||||||
|
buffer.append(defaultTarget);
|
||||||
|
|
||||||
|
// Update the defaultTarget, main-build, by adding a colon, which is
|
||||||
|
// needed below
|
||||||
|
defaultTarget = defaultTarget.concat(COLON);
|
||||||
|
buffer.append(NEWLINE + NEWLINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write out the all target first in case someone just runs make
|
||||||
|
// all: <target_name> or mainbuild: <target_name>
|
||||||
|
|
||||||
buffer.append(defaultTarget + WHITESPACE + outputPrefix + buildTargetName);
|
buffer.append(defaultTarget + WHITESPACE + outputPrefix + buildTargetName);
|
||||||
if (extension.length() > 0) {
|
if (extension.length() > 0) {
|
||||||
buffer.append(DOT + extension);
|
buffer.append(DOT + extension);
|
||||||
|
@ -622,10 +654,9 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator {
|
||||||
buffer.append(NEWLINE + NEWLINE);
|
buffer.append(NEWLINE + NEWLINE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The build target may depend on other projects in the workspace. These are
|
* The build target may depend on other projects in the workspace. These
|
||||||
* captured in the deps target:
|
* are captured in the deps target: deps: <cd <Proj_Dep_1/build_dir>;
|
||||||
* deps:
|
* $(MAKE) [clean all | all]>
|
||||||
* <cd <Proj_Dep_1/build_dir>; $(MAKE) [clean all | all]>
|
|
||||||
*/
|
*/
|
||||||
Vector managedProjectOutputs = new Vector(refdProjects.length);
|
Vector managedProjectOutputs = new Vector(refdProjects.length);
|
||||||
if (refdProjects.length > 0) {
|
if (refdProjects.length > 0) {
|
||||||
|
@ -671,7 +702,7 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator {
|
||||||
* @echo 'Building target: $@'
|
* @echo 'Building target: $@'
|
||||||
* $(BUILD_TOOL) $(FLAGS) $(OUTPUT_FLAG)$@ $(OBJS) $(USER_OBJS) $(LIB_DEPS)
|
* $(BUILD_TOOL) $(FLAGS) $(OUTPUT_FLAG)$@ $(OBJS) $(USER_OBJS) $(LIB_DEPS)
|
||||||
* @echo 'Finished building: $@'
|
* @echo 'Finished building: $@'
|
||||||
* @echo
|
* $(MAKE) --no-print-directory post-build //if postbuild step present
|
||||||
*/
|
*/
|
||||||
buffer.append(outputPrefix + buildTargetName);
|
buffer.append(outputPrefix + buildTargetName);
|
||||||
if (extension.length() > 0) {
|
if (extension.length() > 0) {
|
||||||
|
@ -685,18 +716,65 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator {
|
||||||
buffer.append(NEWLINE);
|
buffer.append(NEWLINE);
|
||||||
buffer.append(TAB + AT + ECHO + WHITESPACE + SINGLE_QUOTE + MESSAGE_START_BUILD + WHITESPACE + OUT_MACRO + SINGLE_QUOTE + NEWLINE);
|
buffer.append(TAB + AT + ECHO + WHITESPACE + SINGLE_QUOTE + MESSAGE_START_BUILD + WHITESPACE + OUT_MACRO + SINGLE_QUOTE + NEWLINE);
|
||||||
buffer.append(TAB + cmd + WHITESPACE + flags + WHITESPACE + outflag + WHITESPACE + OUT_MACRO + WHITESPACE + "$(OBJS) $(USER_OBJS) $(LIBS)" + NEWLINE); //$NON-NLS-1$
|
buffer.append(TAB + cmd + WHITESPACE + flags + WHITESPACE + outflag + WHITESPACE + OUT_MACRO + WHITESPACE + "$(OBJS) $(USER_OBJS) $(LIBS)" + NEWLINE); //$NON-NLS-1$
|
||||||
buffer.append(TAB + AT + ECHO + WHITESPACE + SINGLE_QUOTE + MESSAGE_FINISH_FILE + WHITESPACE + OUT_MACRO + SINGLE_QUOTE + NEWLINE + NEWLINE);
|
buffer.append(TAB + AT + ECHO + WHITESPACE + SINGLE_QUOTE + MESSAGE_FINISH_FILE + WHITESPACE + OUT_MACRO + SINGLE_QUOTE + NEWLINE);
|
||||||
|
|
||||||
|
// If there is a post build step, then add a recursive invocation of MAKE to invoke it after the main build
|
||||||
|
// Note that $(MAKE) will instantiate in the recusive invocation to the make command that was used to invoke
|
||||||
|
// the makefile originally
|
||||||
|
if (postbuildStep.length() > 0) {
|
||||||
|
buffer.append(TAB + AT + ECHO + WHITESPACE + SINGLE_QUOTE + WHITESPACE + SINGLE_QUOTE + NEWLINE);
|
||||||
|
buffer.append(TAB + MAKE + WHITESPACE + NO_PRINT_DIR + WHITESPACE + postbuild + NEWLINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
buffer.append(NEWLINE);
|
||||||
|
|
||||||
// Always add a clean target
|
// Always add a clean target
|
||||||
buffer.append("clean:" + NEWLINE); //$NON-NLS-1$
|
buffer.append("clean:" + NEWLINE); //$NON-NLS-1$
|
||||||
buffer.append(TAB + "-$(RM)" + WHITESPACE + "$(OBJS)" + WHITESPACE + "$(DEPS)" + WHITESPACE + outputPrefix + buildTargetName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
buffer.append(TAB
|
||||||
|
+ "-$(RM)" + WHITESPACE + "$(OBJS)" + WHITESPACE + "$(DEPS)" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||||
|
+ WHITESPACE + outputPrefix + buildTargetName);
|
||||||
if (extension.length() > 0) {
|
if (extension.length() > 0) {
|
||||||
buffer.append(DOT + extension);
|
buffer.append(DOT + extension);
|
||||||
}
|
}
|
||||||
buffer.append(NEWLINE + NEWLINE);
|
buffer.append(NEWLINE);
|
||||||
|
buffer.append(TAB + DASH + AT + ECHO + WHITESPACE + SINGLE_QUOTE
|
||||||
|
+ WHITESPACE + SINGLE_QUOTE + NEWLINE + NEWLINE);
|
||||||
|
|
||||||
|
// Add the prebuild step target, if specified
|
||||||
|
if (prebuildStep.length() > 0) {
|
||||||
|
buffer.append(prebuild + COLON + NEWLINE);
|
||||||
|
if (preannouncebuildStep.length() > 0) {
|
||||||
|
buffer.append(TAB + DASH + AT + ECHO + WHITESPACE
|
||||||
|
+ SINGLE_QUOTE + preannouncebuildStep + SINGLE_QUOTE
|
||||||
|
+ NEWLINE);
|
||||||
|
}
|
||||||
|
buffer.append(TAB + DASH + prebuildStep + NEWLINE);
|
||||||
|
buffer.append(TAB + DASH + AT + ECHO + WHITESPACE + SINGLE_QUOTE
|
||||||
|
+ WHITESPACE + SINGLE_QUOTE + NEWLINE + NEWLINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the postbuild step, if specified
|
||||||
|
if (postbuildStep.length() > 0) {
|
||||||
|
buffer.append(postbuild + COLON + NEWLINE);
|
||||||
|
if (postannouncebuildStep.length() > 0) {
|
||||||
|
buffer.append(TAB + DASH + AT + ECHO + WHITESPACE
|
||||||
|
+ SINGLE_QUOTE + postannouncebuildStep + SINGLE_QUOTE
|
||||||
|
+ NEWLINE);
|
||||||
|
}
|
||||||
|
buffer.append(TAB + DASH + postbuildStep + NEWLINE);
|
||||||
|
buffer.append(TAB + DASH + AT + ECHO + WHITESPACE + SINGLE_QUOTE
|
||||||
|
+ WHITESPACE + SINGLE_QUOTE + NEWLINE + NEWLINE);
|
||||||
|
}
|
||||||
|
|
||||||
// Add all the eneded dummy and phony targets
|
// Add all the eneded dummy and phony targets
|
||||||
buffer.append(".PHONY: all clean dependents" + NEWLINE); //$NON-NLS-1$
|
buffer.append(".PHONY: all clean dependents"); //$NON-NLS-1$
|
||||||
|
if (prebuildStep.length() > 0) {
|
||||||
|
buffer.append(WHITESPACE + mainbuild + WHITESPACE + prebuild);
|
||||||
|
}
|
||||||
|
if (postbuildStep.length() > 0) {
|
||||||
|
buffer.append(WHITESPACE + postbuild);
|
||||||
|
}
|
||||||
|
buffer.append(NEWLINE);
|
||||||
refIter = managedProjectOutputs.listIterator();
|
refIter = managedProjectOutputs.listIterator();
|
||||||
while(refIter.hasNext()) {
|
while(refIter.hasNext()) {
|
||||||
buffer.append((String)refIter.next() + COLON + NEWLINE);
|
buffer.append((String)refIter.next() + COLON + NEWLINE);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2004 Intel Corporation and others.
|
* Copyright (c) 2004, 2005 Intel Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v1.0
|
* are made available under the terms of the Common Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -244,7 +244,7 @@ class UpdateManagedProject20 {
|
||||||
String builderName = targetPlatform.getName() + "." + newConfig.getName(); //$NON-NLS-1$
|
String builderName = targetPlatform.getName() + "." + newConfig.getName(); //$NON-NLS-1$
|
||||||
toolChain.createTargetPlatform(targetPlatform,subId,builderName,false);
|
toolChain.createTargetPlatform(targetPlatform,subId,builderName,false);
|
||||||
}
|
}
|
||||||
targetPlatform.setBinaryParserId(binaryParser);
|
targetPlatform.setBinaryParserList(new String[]{binaryParser}); // Older projects have only a single binary parser.
|
||||||
}
|
}
|
||||||
|
|
||||||
if(targetEl.hasAttribute(ITarget.MAKE_COMMAND)){
|
if(targetEl.hasAttribute(ITarget.MAKE_COMMAND)){
|
||||||
|
|
|
@ -1650,6 +1650,7 @@
|
||||||
osList="win32"
|
osList="win32"
|
||||||
name="%ToolChainName.Dbg"
|
name="%ToolChainName.Dbg"
|
||||||
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
||||||
|
isToolChainSupported="org.eclipse.cdt.managedbuilder.toolchain.gnu.cygwin.IsGnuCygwinToolChainSupported"
|
||||||
id="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug">
|
id="cdt.managedbuild.toolchain.gnu.cygwin.exe.debug">
|
||||||
<targetPlatform
|
<targetPlatform
|
||||||
id="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug"
|
id="cdt.managedbuild.target.gnu.platform.cygwin.exe.debug"
|
||||||
|
@ -1720,6 +1721,7 @@
|
||||||
osList="win32"
|
osList="win32"
|
||||||
name="%ToolChainName.Rel"
|
name="%ToolChainName.Rel"
|
||||||
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
||||||
|
isToolChainSupported="org.eclipse.cdt.managedbuilder.toolchain.gnu.cygwin.IsGnuCygwinToolChainSupported"
|
||||||
id="cdt.managedbuild.toolchain.gnu.cygwin.exe.release">
|
id="cdt.managedbuild.toolchain.gnu.cygwin.exe.release">
|
||||||
<targetPlatform
|
<targetPlatform
|
||||||
id="cdt.managedbuild.target.gnu.platform.cygwin.exe.release"
|
id="cdt.managedbuild.target.gnu.platform.cygwin.exe.release"
|
||||||
|
@ -1797,6 +1799,7 @@
|
||||||
osList="win32"
|
osList="win32"
|
||||||
name="%ToolChainName.Dbg"
|
name="%ToolChainName.Dbg"
|
||||||
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
||||||
|
isToolChainSupported="org.eclipse.cdt.managedbuilder.toolchain.gnu.cygwin.IsGnuCygwinToolChainSupported"
|
||||||
id="cdt.managedbuild.toolchain.gnu.cygwin.so.debug">
|
id="cdt.managedbuild.toolchain.gnu.cygwin.so.debug">
|
||||||
<targetPlatform
|
<targetPlatform
|
||||||
id="cdt.managedbuild.target.gnu.platform.cygwin.so.debug"
|
id="cdt.managedbuild.target.gnu.platform.cygwin.so.debug"
|
||||||
|
@ -1877,6 +1880,7 @@
|
||||||
osList="win32"
|
osList="win32"
|
||||||
name="%ToolChainName.Rel"
|
name="%ToolChainName.Rel"
|
||||||
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
||||||
|
isToolChainSupported="org.eclipse.cdt.managedbuilder.toolchain.gnu.cygwin.IsGnuCygwinToolChainSupported"
|
||||||
id="cdt.managedbuild.toolchain.gnu.cygwin.so.release">
|
id="cdt.managedbuild.toolchain.gnu.cygwin.so.release">
|
||||||
<targetPlatform
|
<targetPlatform
|
||||||
id="cdt.managedbuild.target.gnu.platform.cygwin.so.release"
|
id="cdt.managedbuild.target.gnu.platform.cygwin.so.release"
|
||||||
|
@ -1964,6 +1968,7 @@
|
||||||
osList="win32"
|
osList="win32"
|
||||||
name="%ToolChainName.Dbg"
|
name="%ToolChainName.Dbg"
|
||||||
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
||||||
|
isToolChainSupported="org.eclipse.cdt.managedbuilder.toolchain.gnu.cygwin.IsGnuCygwinToolChainSupported"
|
||||||
id="cdt.managedbuild.toolchain.gnu.cygwin.lib.debug">
|
id="cdt.managedbuild.toolchain.gnu.cygwin.lib.debug">
|
||||||
<targetPlatform
|
<targetPlatform
|
||||||
id="cdt.managedbuild.target.gnu.platform.cygwin.lib.debug"
|
id="cdt.managedbuild.target.gnu.platform.cygwin.lib.debug"
|
||||||
|
@ -2030,6 +2035,7 @@
|
||||||
osList="win32"
|
osList="win32"
|
||||||
name="%ToolChainName.Rel"
|
name="%ToolChainName.Rel"
|
||||||
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"
|
||||||
|
isToolChainSupported="org.eclipse.cdt.managedbuilder.toolchain.gnu.cygwin.IsGnuCygwinToolChainSupported"
|
||||||
id="cdt.managedbuild.toolchain.gnu.cygwin.lib.release">
|
id="cdt.managedbuild.toolchain.gnu.cygwin.lib.release">
|
||||||
<targetPlatform
|
<targetPlatform
|
||||||
id="cdt.managedbuild.target.gnu.platform.cygwin.lib.release"
|
id="cdt.managedbuild.target.gnu.platform.cygwin.lib.release"
|
||||||
|
|
|
@ -35,6 +35,7 @@ PlatformBlock.tip.platform=Select the type of project for the build goal
|
||||||
PlatformBlock.label.platform=Project Type:
|
PlatformBlock.label.platform=Project Type:
|
||||||
PlatformBlock.label.configs=Configurations:
|
PlatformBlock.label.configs=Configurations:
|
||||||
PlatformBlock.label.showall=Show All Project Types
|
PlatformBlock.label.showall=Show All Project Types
|
||||||
|
PlatformBlock.label.showall.config=Show All Configurations
|
||||||
PlatformBlock.message.error.noconfigs=You must select at least one configuration
|
PlatformBlock.message.error.noconfigs=You must select at least one configuration
|
||||||
|
|
||||||
# -- Strings for the additional options tab
|
# -- Strings for the additional options tab
|
||||||
|
@ -60,6 +61,9 @@ BuildPropertyPage.defaults.message=This action will reset all of the tools in th
|
||||||
BuildPropertyPage.changes.save.title=Apply Configuration Changes
|
BuildPropertyPage.changes.save.title=Apply Configuration Changes
|
||||||
BuildPropertyPage.changes.save.question=You have made changes to the {0} configuration.\n\nDo you want to apply these changes before switching to the {1} configuration?
|
BuildPropertyPage.changes.save.question=You have made changes to the {0} configuration.\n\nDo you want to apply these changes before switching to the {1} configuration?
|
||||||
BuildPropertyPage.changes.save.error=The configuration changes could not be applied.
|
BuildPropertyPage.changes.save.error=The configuration changes could not be applied.
|
||||||
|
BuildPropertyPage.unsupported.proj=The project support is not installed on the system
|
||||||
|
BuildPropertyPage.unsupported.config=The configuration support is not installed on the system
|
||||||
|
BuildPropertyPage.config.notselected=No configurations selected
|
||||||
|
|
||||||
#--------------- Resource Configuration Selection Page --------------
|
#--------------- Resource Configuration Selection Page --------------
|
||||||
ResourceBuildPropertyPage.defaults.title=Reset Resource Configuration Tool
|
ResourceBuildPropertyPage.defaults.title=Reset Resource Configuration Tool
|
||||||
|
@ -103,6 +107,7 @@ NewConfiguration.label.name=Name:
|
||||||
NewConfiguration.label.group=Copy settings from
|
NewConfiguration.label.group=Copy settings from
|
||||||
NewConfiguration.label.copy=Default configuration:
|
NewConfiguration.label.copy=Default configuration:
|
||||||
NewConfiguration.label.clone=Existing configuration:
|
NewConfiguration.label.clone=Existing configuration:
|
||||||
|
NewConfiguration.label.showall=Show unsupported configurations
|
||||||
NewConfiguration.error.duplicateName=A configuration named "{0}" already exists.
|
NewConfiguration.error.duplicateName=A configuration named "{0}" already exists.
|
||||||
NewConfiguration.error.caseName=A configuration name that differs only in case to "{0}" exists.
|
NewConfiguration.error.caseName=A configuration name that differs only in case to "{0}" exists.
|
||||||
NewConfiguration.error.invalidName=The name "{0}" is invalid.
|
NewConfiguration.error.invalidName=The name "{0}" is invalid.
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
/**********************************************************************
|
||||||
|
* Copyright (c) 2005 Intel Corporation and others.
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Common Public License v1.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/cpl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Intel Corporation - Initial API and implementation
|
||||||
|
**********************************************************************/
|
||||||
|
package org.eclipse.cdt.managedbuilder.toolchain.gnu.cygwin;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.managedbuilder.core.IManagedIsToolChainSupported;
|
||||||
|
import org.eclipse.cdt.managedbuilder.core.IToolChain;
|
||||||
|
import org.eclipse.core.runtime.PluginVersionIdentifier;
|
||||||
|
|
||||||
|
public class IsGnuCygwinToolChainSupported implements
|
||||||
|
IManagedIsToolChainSupported {
|
||||||
|
|
||||||
|
public boolean isSupported(IToolChain toolChain,
|
||||||
|
PluginVersionIdentifier version, String instance) {
|
||||||
|
// TODO implement
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2002,2004 Rational Software Corporation and others.
|
* Copyright (c) 2002, 2005 Rational Software Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v0.5
|
* are made available under the terms of the Common Public License v0.5
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -29,6 +29,7 @@ import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
|
||||||
import org.eclipse.core.resources.IProject;
|
import org.eclipse.core.resources.IProject;
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.core.runtime.Preferences;
|
import org.eclipse.core.runtime.Preferences;
|
||||||
|
import org.eclipse.jface.dialogs.IMessageProvider;
|
||||||
import org.eclipse.jface.dialogs.MessageDialog;
|
import org.eclipse.jface.dialogs.MessageDialog;
|
||||||
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
|
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
|
||||||
import org.eclipse.jface.operation.IRunnableWithProgress;
|
import org.eclipse.jface.operation.IRunnableWithProgress;
|
||||||
|
@ -78,6 +79,10 @@ public class BuildPropertyPage extends PropertyPage implements IWorkbenchPropert
|
||||||
private static final String ID_SEPARATOR = "."; //$NON-NLS-1$
|
private static final String ID_SEPARATOR = "."; //$NON-NLS-1$
|
||||||
private static final String MSG_CLOSEDPROJECT = "MngMakeProjectPropertyPage.closedproject"; //$NON-NLS-1$
|
private static final String MSG_CLOSEDPROJECT = "MngMakeProjectPropertyPage.closedproject"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
private static final String MSG_UNSUPPORTED_PROJ = PREFIX + ".unsupported.proj"; //$NON-NLS-1$
|
||||||
|
private static final String MSG_UNSUPPORTED_CONFIG = PREFIX + ".unsupported.config"; //$NON-NLS-1$
|
||||||
|
private static final String MSG_CONFIG_NOTSELECTED = PREFIX + ".config.notselected"; //$NON-NLS-1$
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Dialog widgets
|
* Dialog widgets
|
||||||
*/
|
*/
|
||||||
|
@ -454,9 +459,28 @@ public class BuildPropertyPage extends PropertyPage implements IWorkbenchPropert
|
||||||
// TODO: Set the appropriate error parsers...
|
// TODO: Set the appropriate error parsers...
|
||||||
// TODO: Binary parsers too?
|
// TODO: Binary parsers too?
|
||||||
fOptionBlock.updateValues();
|
fOptionBlock.updateValues();
|
||||||
|
|
||||||
|
doUpdateMessage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void doUpdateMessage(){
|
||||||
|
if(selectedProjectType != null && !selectedProjectType.isSupported()){
|
||||||
|
setMessage(ManagedBuilderUIMessages.getResourceString(MSG_UNSUPPORTED_PROJ),IMessageProvider.WARNING);
|
||||||
|
}
|
||||||
|
else if(selectedConfiguration != null){
|
||||||
|
if(selectedConfiguration.isSupported()){
|
||||||
|
setMessage(null,IMessageProvider.NONE);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
setMessage(ManagedBuilderUIMessages.getResourceString(MSG_UNSUPPORTED_CONFIG),IMessageProvider.WARNING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
setMessage(ManagedBuilderUIMessages.getResourceString(MSG_CONFIG_NOTSELECTED),IMessageProvider.WARNING);
|
||||||
|
getContainer().updateMessage();
|
||||||
|
}
|
||||||
|
|
||||||
// Event handler for the manage configuration button event
|
// Event handler for the manage configuration button event
|
||||||
private void handleManageConfig () {
|
private void handleManageConfig () {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2003,2004 IBM Corporation and others.
|
* Copyright (c) 2003, 2005 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v0.5
|
* are made available under the terms of the Common Public License v0.5
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -45,6 +45,7 @@ public class NewConfigurationDialog extends StatusDialog {
|
||||||
private static final String GROUP = LABEL + ".group"; //$NON-NLS-1$
|
private static final String GROUP = LABEL + ".group"; //$NON-NLS-1$
|
||||||
private static final String COPY = LABEL + ".copy"; //$NON-NLS-1$
|
private static final String COPY = LABEL + ".copy"; //$NON-NLS-1$
|
||||||
private static final String CLONE = LABEL + ".clone"; //$NON-NLS-1$
|
private static final String CLONE = LABEL + ".clone"; //$NON-NLS-1$
|
||||||
|
private static final String SHOWALL = LABEL + ".showall"; //$NON-NLS-1$
|
||||||
private static final String DUPLICATE = ERROR + ".duplicateName"; //$NON-NLS-1$
|
private static final String DUPLICATE = ERROR + ".duplicateName"; //$NON-NLS-1$
|
||||||
private static final String CASE = ERROR + ".caseName"; //$NON-NLS-1$
|
private static final String CASE = ERROR + ".caseName"; //$NON-NLS-1$
|
||||||
private static final String INVALID = ERROR + ".invalidName"; //$NON-NLS-1$
|
private static final String INVALID = ERROR + ".invalidName"; //$NON-NLS-1$
|
||||||
|
@ -55,6 +56,7 @@ public class NewConfigurationDialog extends StatusDialog {
|
||||||
private Text configName;
|
private Text configName;
|
||||||
private Combo copyConfigSelector;
|
private Combo copyConfigSelector;
|
||||||
private Combo cloneConfigSelector;
|
private Combo cloneConfigSelector;
|
||||||
|
private Button btnShowAll;
|
||||||
|
|
||||||
// Bookeeping
|
// Bookeeping
|
||||||
private boolean clone;
|
private boolean clone;
|
||||||
|
@ -201,7 +203,6 @@ public class NewConfigurationDialog extends StatusDialog {
|
||||||
|
|
||||||
copyConfigSelector = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.BORDER);
|
copyConfigSelector = new Combo(group, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.BORDER);
|
||||||
copyConfigSelector.setFont(group.getFont());
|
copyConfigSelector.setFont(group.getFont());
|
||||||
copyConfigSelector.setItems(getDefaultConfigNames());
|
|
||||||
int index = copyConfigSelector.indexOf(newName);
|
int index = copyConfigSelector.indexOf(newName);
|
||||||
copyConfigSelector.select(index < 0 ? 0 : index);
|
copyConfigSelector.select(index < 0 ? 0 : index);
|
||||||
gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
|
gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
|
||||||
|
@ -238,6 +239,22 @@ public class NewConfigurationDialog extends StatusDialog {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Create a "show all configurations" button
|
||||||
|
btnShowAll = new Button(composite, SWT.CHECK);
|
||||||
|
btnShowAll.setFont(composite.getFont());
|
||||||
|
btnShowAll.setText(ManagedBuilderUIMessages.getResourceString(SHOWALL));
|
||||||
|
gd = new GridData(GridData.FILL_HORIZONTAL);
|
||||||
|
gd.horizontalSpan = 1;
|
||||||
|
btnShowAll.setLayoutData(gd);
|
||||||
|
btnShowAll.addSelectionListener(new SelectionAdapter() {
|
||||||
|
public void widgetSelected(SelectionEvent e) {
|
||||||
|
updateDefaultConfigs();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
updateComboState();
|
||||||
|
updateDefaultConfigs();
|
||||||
|
|
||||||
return composite;
|
return composite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,18 +267,45 @@ public class NewConfigurationDialog extends StatusDialog {
|
||||||
return parentConfig;
|
return parentConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Returns the array of configuration names defined for all projects
|
* updates the list of default configurations
|
||||||
* of this type in the plugin manifest. This list will be used to
|
|
||||||
* populate the the configurations to copy default settings from.
|
|
||||||
*/
|
*/
|
||||||
private String [] getDefaultConfigNames() {
|
private void updateDefaultConfigs(){
|
||||||
String [] names = new String[defaultConfigs.length];
|
IConfiguration cfgs[] = managedProject.getProjectType().getConfigurations();
|
||||||
for (int index = 0; index < defaultConfigs.length; ++index) {
|
boolean showAll = btnShowAll != null ? btnShowAll.getSelection() : false;
|
||||||
IConfiguration config = defaultConfigs[index];
|
|
||||||
names[index] = config.getName();
|
if(showAll)
|
||||||
|
defaultConfigs = cfgs;
|
||||||
|
else {
|
||||||
|
ArrayList list = new ArrayList();
|
||||||
|
for (int i = 0; i < cfgs.length; i++){
|
||||||
|
if(cfgs[i].isSupported())
|
||||||
|
list.add(cfgs[i]);
|
||||||
|
}
|
||||||
|
defaultConfigs = (IConfiguration[])list.toArray(new IConfiguration[list.size()]);
|
||||||
}
|
}
|
||||||
return names;
|
|
||||||
|
if(defaultConfigs.length != 0){
|
||||||
|
String names[] = new String[defaultConfigs.length];
|
||||||
|
for (int i = 0; i < defaultConfigs.length; ++i)
|
||||||
|
names[i] = defaultConfigs[i].getName();
|
||||||
|
|
||||||
|
int selectionIndex = copyConfigSelector.getSelectionIndex();
|
||||||
|
String oldSelection = null;
|
||||||
|
if(selectionIndex != -1)
|
||||||
|
oldSelection = copyConfigSelector.getItem(selectionIndex);
|
||||||
|
|
||||||
|
copyConfigSelector.setItems(names);
|
||||||
|
if(oldSelection != null)
|
||||||
|
selectionIndex = copyConfigSelector.indexOf(oldSelection);
|
||||||
|
if(selectionIndex == -1)
|
||||||
|
selectionIndex = 0;
|
||||||
|
copyConfigSelector.select(selectionIndex);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
copyConfigSelector.removeAll();
|
||||||
|
}
|
||||||
|
validateState();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -338,6 +382,8 @@ public class NewConfigurationDialog extends StatusDialog {
|
||||||
protected void updateComboState() {
|
protected void updateComboState() {
|
||||||
cloneConfigSelector.setEnabled(clone);
|
cloneConfigSelector.setEnabled(clone);
|
||||||
copyConfigSelector.setEnabled(!clone);
|
copyConfigSelector.setEnabled(!clone);
|
||||||
|
btnShowAll.setVisible(!clone);
|
||||||
|
validateState();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -385,6 +431,9 @@ public class NewConfigurationDialog extends StatusDialog {
|
||||||
if (nameLength == 0) {
|
if (nameLength == 0) {
|
||||||
// Not an error
|
// Not an error
|
||||||
status.setError(""); //$NON-NLS-1$
|
status.setError(""); //$NON-NLS-1$
|
||||||
|
} else if(clone ? definedConfigs.length == 0 : defaultConfigs.length == 0) {
|
||||||
|
// Not an error
|
||||||
|
status.setError(""); //$NON-NLS-1$
|
||||||
} else if (isDuplicateName(currentName)) {
|
} else if (isDuplicateName(currentName)) {
|
||||||
status.setError(ManagedBuilderUIMessages.getFormattedString(DUPLICATE, currentName));
|
status.setError(ManagedBuilderUIMessages.getFormattedString(DUPLICATE, currentName));
|
||||||
} else if (isSimilarName(currentName)) {
|
} else if (isSimilarName(currentName)) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2002,2004 IBM Corporation and others.
|
* Copyright (c) 2002, 2005 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v0.5
|
* are made available under the terms of the Common Public License v0.5
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -59,6 +59,7 @@ public class CProjectPlatformPage extends WizardPage {
|
||||||
private static final String TIP = PREFIX + ".tip"; //$NON-NLS-1$
|
private static final String TIP = PREFIX + ".tip"; //$NON-NLS-1$
|
||||||
private static final String CONFIG_LABEL = LABEL + ".configs"; //$NON-NLS-1$
|
private static final String CONFIG_LABEL = LABEL + ".configs"; //$NON-NLS-1$
|
||||||
private static final String SHOWALL_LABEL = LABEL + ".showall"; //$NON-NLS-1$
|
private static final String SHOWALL_LABEL = LABEL + ".showall"; //$NON-NLS-1$
|
||||||
|
private static final String SHOWALL_CONFIG_LABEL = LABEL + ".showall.config"; //$NON-NLS-1$
|
||||||
private static final String TARGET_LABEL = LABEL + ".platform"; //$NON-NLS-1$
|
private static final String TARGET_LABEL = LABEL + ".platform"; //$NON-NLS-1$
|
||||||
private static final String TARGET_TIP = TIP + ".platform"; //$NON-NLS-1$
|
private static final String TARGET_TIP = TIP + ".platform"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
@ -66,10 +67,12 @@ public class CProjectPlatformPage extends WizardPage {
|
||||||
protected Combo platformSelection;
|
protected Combo platformSelection;
|
||||||
private ArrayList selectedConfigurations;
|
private ArrayList selectedConfigurations;
|
||||||
protected IProjectType selectedProjectType;
|
protected IProjectType selectedProjectType;
|
||||||
protected Button showAll;
|
protected Button showAllProjTypes;
|
||||||
|
protected Button showAllConfigs;
|
||||||
protected CheckboxTableViewer tableViewer;
|
protected CheckboxTableViewer tableViewer;
|
||||||
protected String[] projectTypeNames;
|
protected String[] projectTypeNames;
|
||||||
protected ArrayList projectTypes;
|
protected ArrayList projectTypes;
|
||||||
|
protected IConfiguration configurations[];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
|
@ -163,19 +166,33 @@ public class CProjectPlatformPage extends WizardPage {
|
||||||
composite.setLayout(new GridLayout());
|
composite.setLayout(new GridLayout());
|
||||||
composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
|
|
||||||
showAll = new Button(composite, SWT.CHECK | SWT.LEFT);
|
showAllProjTypes = new Button(composite, SWT.CHECK | SWT.LEFT);
|
||||||
showAll.setFont(composite.getFont());
|
showAllProjTypes.setFont(composite.getFont());
|
||||||
showAll.setText(ManagedBuilderUIMessages.getResourceString(SHOWALL_LABEL));
|
showAllProjTypes.setText(ManagedBuilderUIMessages.getResourceString(SHOWALL_LABEL));
|
||||||
showAll.addListener(SWT.Selection, new Listener() {
|
showAllProjTypes.addListener(SWT.Selection, new Listener() {
|
||||||
public void handleEvent(Event e) {
|
public void handleEvent(Event e) {
|
||||||
populateTypes();
|
populateTypes();
|
||||||
platformSelection.select(0);
|
platformSelection.select(0);
|
||||||
handleTypeSelection();
|
handleTypeSelection();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
showAll.addDisposeListener(new DisposeListener() {
|
showAllProjTypes.addDisposeListener(new DisposeListener() {
|
||||||
public void widgetDisposed(DisposeEvent event) {
|
public void widgetDisposed(DisposeEvent event) {
|
||||||
showAll = null;
|
showAllProjTypes = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
showAllConfigs = new Button(composite, SWT.CHECK | SWT.LEFT);
|
||||||
|
showAllConfigs.setFont(composite.getFont());
|
||||||
|
showAllConfigs.setText(ManagedBuilderUIMessages.getResourceString(SHOWALL_CONFIG_LABEL));
|
||||||
|
showAllConfigs.addListener(SWT.Selection, new Listener() {
|
||||||
|
public void handleEvent(Event e) {
|
||||||
|
populateConfigurations();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
showAllConfigs.addDisposeListener(new DisposeListener() {
|
||||||
|
public void widgetDisposed(DisposeEvent event) {
|
||||||
|
showAllConfigs = null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -267,16 +284,44 @@ public class CProjectPlatformPage extends WizardPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Populate the table viewer with the known configurations.
|
* Populate the table viewer with either all known configurations
|
||||||
* By default, all the configurations are selected.
|
* or only with the supported configurations depending on whether a user
|
||||||
|
* has chosen to diaplay unsupported configurations or not
|
||||||
|
* By default, only supported configurations are selected.
|
||||||
*/
|
*/
|
||||||
private void populateConfigurations() {
|
private void populateConfigurations() {
|
||||||
// Make the root of the content provider the new project type
|
if(selectedProjectType == null)
|
||||||
tableViewer.setInput(selectedProjectType);
|
return;
|
||||||
tableViewer.setAllChecked(true);
|
boolean showAll = showAllConfigs != null ? showAllConfigs.getSelection() : false;
|
||||||
|
IConfiguration selected[] = null;
|
||||||
|
|
||||||
|
if(showAll){
|
||||||
|
configurations = selectedProjectType.getConfigurations();
|
||||||
|
selected = filterSupportedConfigurations(configurations);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
configurations = filterSupportedConfigurations(selectedProjectType.getConfigurations());
|
||||||
|
selected = configurations;
|
||||||
|
}
|
||||||
|
|
||||||
|
tableViewer.setInput(configurations);
|
||||||
|
tableViewer.setCheckedElements(selected);
|
||||||
handleConfigurationSelectionChange();
|
handleConfigurationSelectionChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the array of supported configurations found in the configuurations
|
||||||
|
* passes to this method
|
||||||
|
*/
|
||||||
|
IConfiguration[] filterSupportedConfigurations(IConfiguration cfgs[]){
|
||||||
|
ArrayList supported = new ArrayList();
|
||||||
|
for(int i = 0; i < cfgs.length; i++){
|
||||||
|
if(cfgs[i].isSupported())
|
||||||
|
supported.add(cfgs[i]);
|
||||||
|
}
|
||||||
|
return (IConfiguration[])supported.toArray(new IConfiguration[supported.size()]);
|
||||||
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* Extracts the names from the project types that are valid for the wizard
|
* Extracts the names from the project types that are valid for the wizard
|
||||||
* session and populates the combo widget with them.
|
* session and populates the combo widget with them.
|
||||||
|
@ -308,9 +353,9 @@ public class CProjectPlatformPage extends WizardPage {
|
||||||
IProjectType type = allProjectTypes[index];
|
IProjectType type = allProjectTypes[index];
|
||||||
if (!type.isAbstract() && !type.isTestProjectType()) {
|
if (!type.isAbstract() && !type.isTestProjectType()) {
|
||||||
// If the check box is selected show all the targets
|
// If the check box is selected show all the targets
|
||||||
if (showAll != null && showAll.getSelection() == true) {
|
if (showAllProjTypes != null && showAllProjTypes.getSelection() == true) {
|
||||||
projectTypes.add(type);
|
projectTypes.add(type);
|
||||||
} else {
|
} else if (type.isSupported()) {
|
||||||
// Apply the OS and ARCH filters to determine if the target should be shown
|
// Apply the OS and ARCH filters to determine if the target should be shown
|
||||||
// Determine if the project type has any configuration with a tool-chain
|
// Determine if the project type has any configuration with a tool-chain
|
||||||
// that supports this OS & Architecture.
|
// that supports this OS & Architecture.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2002,2004 IBM Corporation and others.
|
* Copyright (c) 2002, 2005 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v0.5
|
* are made available under the terms of the Common Public License v0.5
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -10,17 +10,15 @@
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
package org.eclipse.cdt.managedbuilder.ui.wizards;
|
package org.eclipse.cdt.managedbuilder.ui.wizards;
|
||||||
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
|
||||||
import org.eclipse.cdt.managedbuilder.core.IProjectType;
|
|
||||||
import org.eclipse.jface.viewers.IStructuredContentProvider;
|
import org.eclipse.jface.viewers.IStructuredContentProvider;
|
||||||
import org.eclipse.jface.viewers.Viewer;
|
import org.eclipse.jface.viewers.Viewer;
|
||||||
|
|
||||||
public class ConfigurationContentProvider implements IStructuredContentProvider {
|
public class ConfigurationContentProvider implements IStructuredContentProvider {
|
||||||
// The contents of the parent of the table is a list of configurations
|
// The contents of the parent of the table is a list of configurations
|
||||||
public Object[] getElements(Object parent) {
|
public Object[] getElements(Object parent) {
|
||||||
// The content is a list of configurations
|
// The content is an array of configurations
|
||||||
IConfiguration[] configs = ((IProjectType) parent).getConfigurations();
|
Object array[] = (Object[])parent;
|
||||||
return (configs.length == 0) ? new Object[0] : configs;
|
return (array == null || array.length == 0) ? new Object[0] : array;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void dispose() {
|
public void dispose() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Copyright (c) 2002,2005 IBM Corporation and others.
|
* Copyright (c) 2002, 2005 IBM Corporation and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Common Public License v0.5
|
* are made available under the terms of the Common Public License v0.5
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -143,11 +143,22 @@ public class NewManagedProjectWizard extends NewCProjectWizard {
|
||||||
IConfiguration newConfig = newManagedProject.createConfiguration(config, config.getId() + "." + id); //$NON-NLS-1$
|
IConfiguration newConfig = newManagedProject.createConfiguration(config, config.getId() + "." + id); //$NON-NLS-1$
|
||||||
newConfig.setArtifactName(newManagedProject.getDefaultArtifactName());
|
newConfig.setArtifactName(newManagedProject.getDefaultArtifactName());
|
||||||
}
|
}
|
||||||
// Now add the first config in the list as the default
|
// Now add the first supported config in the list as the default
|
||||||
|
IConfiguration defaultCfg = null;
|
||||||
IConfiguration[] newConfigs = newManagedProject.getConfigurations();
|
IConfiguration[] newConfigs = newManagedProject.getConfigurations();
|
||||||
if (newConfigs.length > 0) {
|
for(int i = 0; i < newConfigs.length; i++) {
|
||||||
ManagedBuildManager.setDefaultConfiguration(newProject, newConfigs[0]);
|
if(newConfigs[i].isSupported()){
|
||||||
ManagedBuildManager.setSelectedConfiguration(newProject, newConfigs[0]);
|
defaultCfg = newConfigs[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(defaultCfg == null && newConfigs.length > 0)
|
||||||
|
defaultCfg = newConfigs[0];
|
||||||
|
|
||||||
|
if(defaultCfg != null) {
|
||||||
|
ManagedBuildManager.setDefaultConfiguration(newProject, defaultCfg);
|
||||||
|
ManagedBuildManager.setSelectedConfiguration(newProject, defaultCfg);
|
||||||
}
|
}
|
||||||
ManagedBuildManager.setNewProjectVersion(newProject);
|
ManagedBuildManager.setNewProjectVersion(newProject);
|
||||||
ICDescriptor desc = null;
|
ICDescriptor desc = null;
|
||||||
|
@ -155,12 +166,16 @@ public class NewManagedProjectWizard extends NewCProjectWizard {
|
||||||
desc = CCorePlugin.getDefault().getCProjectDescription(newProject, true);
|
desc = CCorePlugin.getDefault().getCProjectDescription(newProject, true);
|
||||||
desc.create(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID, ManagedBuildManager.INTERFACE_IDENTITY);
|
desc.create(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID, ManagedBuildManager.INTERFACE_IDENTITY);
|
||||||
// TODO: The binary parser setting is currently per-project in the rest of CDT.
|
// TODO: The binary parser setting is currently per-project in the rest of CDT.
|
||||||
// In the MBS, it is per-coonfiguration. For now, select the binary parser of the
|
// In the MBS, it is per-coonfiguration. For now, select the binary parsers of the
|
||||||
// first configuration.
|
// first configuration.
|
||||||
if (newConfigs.length > 0) {
|
if (newConfigs.length > 0) {
|
||||||
IToolChain tc = newConfigs[0].getToolChain();
|
IToolChain tc = newConfigs[0].getToolChain();
|
||||||
ITargetPlatform targetPlatform = tc.getTargetPlatform();
|
ITargetPlatform targetPlatform = tc.getTargetPlatform();
|
||||||
desc.create(CCorePlugin.BINARY_PARSER_UNIQ_ID, targetPlatform.getBinaryParserId());
|
// Create entries for all binary parsers
|
||||||
|
String[] binaryParsers = targetPlatform.getBinaryParserList();
|
||||||
|
for (int i=0; i<binaryParsers.length; i++) {
|
||||||
|
desc.create(CCorePlugin.BINARY_PARSER_UNIQ_ID, binaryParsers[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (CoreException e) {
|
} catch (CoreException e) {
|
||||||
ManagedBuilderUIPlugin.log(e);
|
ManagedBuilderUIPlugin.log(e);
|
||||||
|
|
Loading…
Add table
Reference in a new issue