diff options
author | Mikhail Sennikovsky | 2007-08-09 12:38:52 +0000 |
---|---|---|
committer | Mikhail Sennikovsky | 2007-08-09 12:38:52 +0000 |
commit | c11d44bf9e2f182d86851f4545c70b54b966a98f (patch) | |
tree | 1c2bfeea52202ca4d2da38b9220080da5bfbe714 /build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedGCCScannerInfoConsoleParser.java | |
parent | f089bbf2b4165717e9193bbaf60de597a56a7356 (diff) | |
download | org.eclipse.cdt-c11d44bf9e2f182d86851f4545c70b54b966a98f.tar.gz org.eclipse.cdt-c11d44bf9e2f182d86851f4545c70b54b966a98f.tar.xz org.eclipse.cdt-c11d44bf9e2f182d86851f4545c70b54b966a98f.zip |
Build Output Concolse parser added for ManagedGCC discpvery profiles
Diffstat (limited to 'build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedGCCScannerInfoConsoleParser.java')
-rw-r--r-- | build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedGCCScannerInfoConsoleParser.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedGCCScannerInfoConsoleParser.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedGCCScannerInfoConsoleParser.java new file mode 100644 index 00000000000..3aed749eeab --- /dev/null +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedGCCScannerInfoConsoleParser.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * Copyright (c) 2007 Intel Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Intel Corporation - Initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.managedbuilder.internal.scannerconfig; + +import org.eclipse.cdt.build.core.scannerconfig.CfgInfoContext; +import org.eclipse.cdt.core.model.CoreModel; +import org.eclipse.cdt.core.settings.model.ICProjectDescription; +import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; +import org.eclipse.cdt.make.core.scannerconfig.InfoContext; +import org.eclipse.cdt.make.internal.core.scannerconfig.gnu.GCCScannerInfoConsoleParser; +import org.eclipse.cdt.make.internal.core.scannerconfig2.PerProjectSICollector; +import org.eclipse.cdt.managedbuilder.core.IConfiguration; +import org.eclipse.core.resources.IProject; + +public class ManagedGCCScannerInfoConsoleParser extends + GCCScannerInfoConsoleParser { + Boolean fManagedBuildOnState; + + public boolean processLine(String line) { + if(isManagedBuildOn()) + return false; + return super.processLine(line); + } + + public void shutdown() { + if(!isManagedBuildOn()){ + super.shutdown(); + } + fManagedBuildOnState = null; + } + + public void startup(IProject project, IScannerInfoCollector collector) { + if(isManagedBuildOn()) + return; + super.startup(project, collector); + } + + protected boolean isManagedBuildOn(){ + if(fManagedBuildOnState == null) + fManagedBuildOnState = Boolean.valueOf(doCalcManagedBuildOnState()); + return fManagedBuildOnState.booleanValue(); + } + + protected boolean doCalcManagedBuildOnState(){ + IScannerInfoCollector cr = getCollector(); + InfoContext c; + if(cr instanceof PerProjectSICollector){ + c = ((PerProjectSICollector)cr).getContext(); + } else { + return false; + } + + IProject project = c.getProject(); + ICProjectDescription des = CoreModel.getDefault().getProjectDescription(project, false); + CfgInfoContext cc = CfgInfoContext.fromInfoContext(des, c); + if(cc != null){ + IConfiguration cfg = cc.getConfiguration(); + return cfg.isManagedBuildOn(); + } + return false; + } +} |