mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
bug 319512: Missing type arguments on managedbuilder.core
This commit is contained in:
parent
480ee167c8
commit
2d3c62541c
1 changed files with 62 additions and 77 deletions
|
@ -29,6 +29,7 @@ import java.util.LinkedHashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.SortedMap;
|
import java.util.SortedMap;
|
||||||
|
@ -2255,91 +2256,82 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
// be to an object loaded from a managed build system project file (.cdtbuild).
|
// be to an object loaded from a managed build system project file (.cdtbuild).
|
||||||
//
|
//
|
||||||
|
|
||||||
Iterator projectTypeIter = getExtensionProjectTypeMap().values().iterator();
|
Collection<IProjectType> prjTypes = getExtensionProjectTypeMap().values();
|
||||||
while (projectTypeIter.hasNext()) {
|
for (IProjectType projectType : prjTypes) {
|
||||||
try {
|
try {
|
||||||
ProjectType projectType = (ProjectType)projectTypeIter.next();
|
((ProjectType) projectType).resolveReferences();
|
||||||
projectType.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Iterator configurationIter = getExtensionConfigurationMap().values().iterator();
|
Collection<IConfiguration> configurations = getExtensionConfigurationMap().values();
|
||||||
while (configurationIter.hasNext()) {
|
for (IConfiguration configuration : configurations) {
|
||||||
try {
|
try {
|
||||||
Configuration configuration = (Configuration)configurationIter.next();
|
((Configuration) configuration).resolveReferences();
|
||||||
configuration.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Iterator resConfigIter = getExtensionResourceConfigurationMap().values().iterator();
|
Collection<IResourceConfiguration> resConfigs = getExtensionResourceConfigurationMap().values();
|
||||||
while (resConfigIter.hasNext()) {
|
for (IResourceConfiguration resConfig : resConfigs) {
|
||||||
try {
|
try {
|
||||||
ResourceConfiguration resConfig = (ResourceConfiguration)resConfigIter.next();
|
((ResourceConfiguration) resConfig).resolveReferences();
|
||||||
resConfig.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Iterator toolChainIter = getExtensionToolChainMap().values().iterator();
|
Collection<IToolChain> toolChains = getExtensionToolChainMap().values();
|
||||||
while (toolChainIter.hasNext()) {
|
for (IToolChain toolChain : toolChains) {
|
||||||
try {
|
try {
|
||||||
ToolChain toolChain = (ToolChain)toolChainIter.next();
|
((ToolChain) toolChain).resolveReferences();
|
||||||
toolChain.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Iterator toolIter = getExtensionToolMap().values().iterator();
|
Collection<ITool> tools = getExtensionToolMap().values();
|
||||||
while (toolIter.hasNext()) {
|
for (ITool tool : tools) {
|
||||||
try {
|
try {
|
||||||
Tool tool = (Tool)toolIter.next();
|
((Tool) tool).resolveReferences();
|
||||||
tool.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Iterator targetPlatformIter = getExtensionTargetPlatformMap().values().iterator();
|
Collection<ITargetPlatform> targetPlatforms = getExtensionTargetPlatformMap().values();
|
||||||
while (targetPlatformIter.hasNext()) {
|
for (ITargetPlatform targetPlatform : targetPlatforms) {
|
||||||
try {
|
try {
|
||||||
TargetPlatform targetPlatform = (TargetPlatform)targetPlatformIter.next();
|
((TargetPlatform) targetPlatform).resolveReferences();
|
||||||
targetPlatform.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Iterator builderIter = getExtensionBuilderMap().values().iterator();
|
Collection<IBuilder> builders = getExtensionBuilderMap().values();
|
||||||
while (builderIter.hasNext()) {
|
for (IBuilder builder : builders) {
|
||||||
try {
|
try {
|
||||||
Builder builder = (Builder)builderIter.next();
|
((Builder) builder).resolveReferences();
|
||||||
builder.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Iterator optionIter = getExtensionOptionMap().values().iterator();
|
Collection<IOption> options = getExtensionOptionMap().values();
|
||||||
while (optionIter.hasNext()) {
|
for (IOption option : options) {
|
||||||
try {
|
try {
|
||||||
Option option = (Option)optionIter.next();
|
((Option) option).resolveReferences();
|
||||||
option.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Iterator optionCatIter = getExtensionOptionCategoryMap().values().iterator();
|
Collection<IOptionCategory> optionCategories = getExtensionOptionCategoryMap().values();
|
||||||
while (optionCatIter.hasNext()) {
|
for (IOptionCategory optionCat : optionCategories) {
|
||||||
try {
|
try {
|
||||||
OptionCategory optionCat = (OptionCategory)optionCatIter.next();
|
((OptionCategory) optionCat).resolveReferences();
|
||||||
optionCat.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
|
@ -2381,32 +2373,29 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
loadConfigElementsV2(DefaultManagedConfigElement.convertArray(elements, extension), revision);
|
loadConfigElementsV2(DefaultManagedConfigElement.convertArray(elements, extension), revision);
|
||||||
}
|
}
|
||||||
// Resolve references
|
// Resolve references
|
||||||
Iterator targetIter = getExtensionTargetMap().values().iterator();
|
Collection<ITarget> targets = getExtensionTargetMap().values();
|
||||||
while (targetIter.hasNext()) {
|
for (ITarget target : targets) {
|
||||||
try {
|
try {
|
||||||
Target target = (Target)targetIter.next();
|
((Target) target).resolveReferences();
|
||||||
target.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// The V2 model can also add top-level Tools - they need to be "resolved"
|
// The V2 model can also add top-level Tools - they need to be "resolved"
|
||||||
Iterator toolIter = getExtensionToolMap().values().iterator();
|
Collection<ITool> tools = getExtensionToolMap().values();
|
||||||
while (toolIter.hasNext()) {
|
for (ITool tool : tools) {
|
||||||
try {
|
try {
|
||||||
Tool tool = (Tool)toolIter.next();
|
((Tool) tool).resolveReferences();
|
||||||
tool.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Convert the targets to the new model
|
// Convert the targets to the new model
|
||||||
targetIter = getExtensionTargetMap().values().iterator();
|
targets = getExtensionTargetMap().values();
|
||||||
while (targetIter.hasNext()) {
|
for (ITarget target : targets) {
|
||||||
try {
|
try {
|
||||||
Target target = (Target)targetIter.next();
|
|
||||||
// Check to see if it has already been converted - if not, do it
|
// Check to see if it has already been converted - if not, do it
|
||||||
if (target.getCreatedProjectType() == null) {
|
if (target.getCreatedProjectType() == null) {
|
||||||
target.convertToProjectType(revision);
|
target.convertToProjectType(revision);
|
||||||
|
@ -2417,11 +2406,10 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Resolve references for new ProjectTypes
|
// Resolve references for new ProjectTypes
|
||||||
Iterator projTypeIter = getExtensionProjectTypeMap().values().iterator();
|
Collection<IProjectType> prjTypes = getExtensionProjectTypeMap().values();
|
||||||
while (projTypeIter.hasNext()) {
|
for (IProjectType prjType : prjTypes) {
|
||||||
try {
|
try {
|
||||||
ProjectType projType = (ProjectType)projTypeIter.next();
|
((ProjectType) prjType).resolveReferences();
|
||||||
projType.resolveReferences();
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
// TODO: log
|
// TODO: log
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
|
@ -2450,9 +2438,7 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
// configs resolved...
|
// configs resolved...
|
||||||
// Call the start up config extensions again now that configs have been resolved.
|
// Call the start up config extensions again now that configs have been resolved.
|
||||||
if (buildDefStartupList != null) {
|
if (buildDefStartupList != null) {
|
||||||
for (Iterator iter = buildDefStartupList.iterator(); iter.hasNext();) {
|
for (IManagedBuildDefinitionsStartup customConfigLoader : buildDefStartupList) {
|
||||||
IManagedBuildDefinitionsStartup customConfigLoader = (IManagedBuildDefinitionsStartup)iter.next();
|
|
||||||
|
|
||||||
// Now we can perform any actions on the build configurations
|
// Now we can perform any actions on the build configurations
|
||||||
// in an extended plugin now that all build configruations have been resolved
|
// in an extended plugin now that all build configruations have been resolved
|
||||||
customConfigLoader.buildDefsResolved();
|
customConfigLoader.buildDefsResolved();
|
||||||
|
@ -2514,8 +2500,8 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
|
|
||||||
IResourceConfiguration rcCfgs[] = cfg.getResourceConfigurations();
|
IResourceConfiguration rcCfgs[] = cfg.getResourceConfigurations();
|
||||||
|
|
||||||
for (IResourceConfiguration rcCfg : rcCfgs) {
|
// for (IResourceConfiguration rcCfg : rcCfgs) {
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4036,7 +4022,7 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
return new Path(uri.getPath());
|
return new Path(uri.getPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IBuilder[] createBuilders(IProject project, Map args){
|
public static IBuilder[] createBuilders(IProject project, Map<String, String> args){
|
||||||
return ManagedBuilderCorePlugin.createBuilders(project, args);
|
return ManagedBuilderCorePlugin.createBuilders(project, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4374,18 +4360,18 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IToolChain[] findIdenticalToolChains(IToolChain tc){
|
public static IToolChain[] findIdenticalToolChains(IToolChain tc){
|
||||||
List list = findIdenticalElements((ToolChain)tc, fToolChainSorter);
|
List<ToolChain> list = findIdenticalElements((ToolChain)tc, fToolChainSorter);
|
||||||
return (ToolChain[])list.toArray(new ToolChain[list.size()]);
|
return list.toArray(new ToolChain[list.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ITool[] findIdenticalTools(ITool tool){
|
public static ITool[] findIdenticalTools(ITool tool){
|
||||||
List list = findIdenticalElements((Tool)tool, fToolSorter);
|
List<Tool> list = findIdenticalElements((Tool)tool, fToolSorter);
|
||||||
return (Tool[])list.toArray(new Tool[list.size()]);
|
return list.toArray(new Tool[list.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IBuilder[] findIdenticalBuilders(IBuilder b){
|
public static IBuilder[] findIdenticalBuilders(IBuilder b){
|
||||||
List list = findIdenticalElements((Builder)b, fBuilderSorter);
|
List<Builder> list = findIdenticalElements((Builder)b, fBuilderSorter);
|
||||||
return (Builder[])list.toArray(new Builder[list.size()]);
|
return list.toArray(new Builder[list.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IToolChain[] getExtensionsToolChains(String propertyType, String propertyValue){
|
public static IToolChain[] getExtensionsToolChains(String propertyType, String propertyValue){
|
||||||
|
@ -4507,14 +4493,14 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
ICConfigurationDescription cfgDes = getDescriptionForConfiguration(config);
|
ICConfigurationDescription cfgDes = getDescriptionForConfiguration(config);
|
||||||
if(cfgDes != null){
|
if(cfgDes != null){
|
||||||
ICConfigurationDescription[] descs= CoreModelUtil.getReferencedConfigurationDescriptions(cfgDes, false);
|
ICConfigurationDescription[] descs= CoreModelUtil.getReferencedConfigurationDescriptions(cfgDes, false);
|
||||||
List result = new ArrayList();
|
List<IConfiguration> result = new ArrayList<IConfiguration>();
|
||||||
for (ICConfigurationDescription desc : descs) {
|
for (ICConfigurationDescription desc : descs) {
|
||||||
IConfiguration cfg = getConfigurationForDescription(desc);
|
IConfiguration cfg = getConfigurationForDescription(desc);
|
||||||
if(cfg != null) {
|
if(cfg != null) {
|
||||||
result.add(cfg);
|
result.add(cfg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (IConfiguration[]) result.toArray(new IConfiguration[result.size()]);
|
return result.toArray(new IConfiguration[result.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Configuration[0];
|
return new Configuration[0];
|
||||||
|
@ -4570,16 +4556,15 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
public static void buildConfigurations(IConfiguration[] configs, IBuilder builder, IProgressMonitor monitor,
|
public static void buildConfigurations(IConfiguration[] configs, IBuilder builder, IProgressMonitor monitor,
|
||||||
boolean allBuilders, int buildKind) throws CoreException{
|
boolean allBuilders, int buildKind) throws CoreException{
|
||||||
|
|
||||||
Map map = sortConfigs(configs);
|
Map<IProject, IConfiguration[]> map = sortConfigs(configs);
|
||||||
for(Iterator iter = map.entrySet().iterator(); iter.hasNext();){
|
for (Entry<IProject, IConfiguration[]> entry : map.entrySet()) {
|
||||||
Map.Entry entry = (Map.Entry)iter.next();
|
IProject proj = entry.getKey();
|
||||||
IProject proj = (IProject)entry.getKey();
|
IConfiguration[] cfgs = entry.getValue();
|
||||||
IConfiguration[] cfgs = (IConfiguration[])entry.getValue();
|
|
||||||
buildConfigurations(proj, cfgs, builder, monitor, allBuilders, buildKind);
|
buildConfigurations(proj, cfgs, builder, monitor, allBuilders, buildKind);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Map sortConfigs(IConfiguration cfgs[]){
|
private static Map<IProject, IConfiguration[]> sortConfigs(IConfiguration cfgs[]){
|
||||||
Map cfgMap = new HashMap();
|
Map cfgMap = new HashMap();
|
||||||
|
|
||||||
for (IConfiguration cfg : cfgs) {
|
for (IConfiguration cfg : cfgs) {
|
||||||
|
@ -4659,7 +4644,7 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// configuration IDs are passed in args to CDT builder
|
// configuration IDs are passed in args to CDT builder
|
||||||
Map args = builder!=null ? BuilderFactory.createBuildArgs(configs, builder)
|
Map<String, String> args = builder!=null ? BuilderFactory.createBuildArgs(configs, builder)
|
||||||
: BuilderFactory.createBuildArgs(configs);
|
: BuilderFactory.createBuildArgs(configs);
|
||||||
buildProject(project, args, allBuilders, buildKind, monitor);
|
buildProject(project, args, allBuilders, buildKind, monitor);
|
||||||
}
|
}
|
||||||
|
@ -4667,7 +4652,7 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
monitor.done();
|
monitor.done();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buildProject(IProject project, Map args, boolean allBuilders, int buildKind, IProgressMonitor monitor)
|
private void buildProject(IProject project, Map<String, String> args, boolean allBuilders, int buildKind, IProgressMonitor monitor)
|
||||||
throws CoreException {
|
throws CoreException {
|
||||||
|
|
||||||
if (allBuilders) {
|
if (allBuilders) {
|
||||||
|
@ -4677,9 +4662,9 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
String builderName = command.getBuilderName();
|
String builderName = command.getBuilderName();
|
||||||
Map newArgs = null;
|
Map<String, String> newArgs = null;
|
||||||
if (buildKind!=IncrementalProjectBuilder.CLEAN_BUILD) {
|
if (buildKind!=IncrementalProjectBuilder.CLEAN_BUILD) {
|
||||||
newArgs = new HashMap(args);
|
newArgs = new HashMap<String, String>(args);
|
||||||
if (!builderName.equals(CommonBuilder.BUILDER_ID)) {
|
if (!builderName.equals(CommonBuilder.BUILDER_ID)) {
|
||||||
newArgs.putAll(command.getArguments());
|
newArgs.putAll(command.getArguments());
|
||||||
}
|
}
|
||||||
|
@ -4705,13 +4690,13 @@ public class ManagedBuildManager extends AbstractCExtension {
|
||||||
|
|
||||||
public static ITool getExtensionTool(ITool tool){
|
public static ITool getExtensionTool(ITool tool){
|
||||||
ITool extTool = tool;
|
ITool extTool = tool;
|
||||||
for(;extTool != null && !extTool.isExtensionElement(); extTool = extTool.getSuperClass());
|
for(;extTool != null && !extTool.isExtensionElement(); extTool = extTool.getSuperClass()) {}
|
||||||
return extTool;
|
return extTool;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IInputType getExtensionInputType(IInputType inType){
|
public static IInputType getExtensionInputType(IInputType inType){
|
||||||
IInputType extIT = inType;
|
IInputType extIT = inType;
|
||||||
for(;extIT != null && !extIT.isExtensionElement(); extIT = extIT.getSuperClass());
|
for(;extIT != null && !extIT.isExtensionElement(); extIT = extIT.getSuperClass()) {}
|
||||||
return extIT;
|
return extIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue