mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Merge remote-tracking branch 'cdt/master' into sd90
This commit is contained in:
commit
e7468a6b26
16 changed files with 152 additions and 208 deletions
|
@ -1,3 +1,9 @@
|
|||
2012-08-29 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
Resolves: bug #381291
|
||||
* plugin.xml: Add other types of binary parsers for Autotools target since it can apply to
|
||||
non-ELF OSes.
|
||||
|
||||
2012-08-29 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
Resolves: bug #388354
|
||||
|
|
|
@ -379,7 +379,7 @@
|
|||
</tool>
|
||||
<targetPlatform
|
||||
archList="all"
|
||||
binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF"
|
||||
binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF;org.eclipse.cdt.core.MachO64;org.eclipse.cdt.core.PE;org.eclipse.cdt.core.Cygwin_PE"
|
||||
id="org.eclipse.linuxtools.cdt.autotools.core.targetPlatform"
|
||||
isAbstract="false"
|
||||
name="%Autotools.targetplatform.name"/>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2011 Red Hat, Inc.
|
||||
* 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:
|
||||
* Red Hat Incorporated - initial API and implementation
|
||||
*******************************************************************************/
|
||||
################################################################################
|
||||
# Copyright (c) 2009, 2011, 2012 Red Hat, Inc.
|
||||
# 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:
|
||||
# Red Hat Incorporated - initial API and implementation
|
||||
################################################################################
|
||||
Option.configure.configure=configure
|
||||
Option.configure.general=General
|
||||
Option.configure.builddir=Build directory
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<?NLS TYPE="org.eclipse.help.toc"?>
|
||||
<toc topic="CDT/Autotools/User_Guide/User-Guide.html" label="Autotools Plug-in User Guide">
|
||||
<topic href="CDT/Autotools/User_Guide/User-Guide.html" label="Autotools Plug-in User Guide">
|
||||
<topic href="CDT/Autotools/User_Guide/User-Guide.html" label="Introduction"></topic>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#################################################################################
|
||||
# Copyright (c) 2006, 2008, 2009 Red Hat, Inc.
|
||||
# Copyright (c) 2006, 2008, 2009, 2012 Red Hat, Inc.
|
||||
# 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
|
||||
|
@ -60,85 +60,6 @@ ShowTooltip.description=Shows the tooltip description for the element at the cur
|
|||
ACeditor.scope.name=Autoconf Editor
|
||||
ACeditor.scope.description=Editor for Autoconf Configuration Source Files
|
||||
|
||||
Tool.configure=configure
|
||||
|
||||
OptionCategory.configure.general=General
|
||||
Option.configure.name=Name
|
||||
Option.configure.builddir=Build directory
|
||||
Option.configure.builddir.tip=Subdirectory off of project where build will occur
|
||||
Option.configure.configdir=Configure tool directory
|
||||
Option.configure.configdir.tip=Subdirectory off of project containing configure scripts
|
||||
Option.configure.cache_file=Name of configuration cache file (--cache-file)
|
||||
Option.configure.cache_file.tip=Specify the name of the configuration cache file [config.cache]
|
||||
Option.configure.no_create=Turn off file creation <not advised> (--no-create)
|
||||
Option.configure.no_create.tip=This tells configuration not to generate the output files as part of configuration
|
||||
Option.configure.quiet=Turn off checking messages (--quiet)
|
||||
Option.configure.quiet.tip=This turns off "checking ..." style messages from the configuration console output
|
||||
Option.configure.help=Display help contents of top-level configuration (--help)
|
||||
Option.configure.help.tip=Ask configuration file to display its help documentation
|
||||
Option.configure.version=Display version of autotools used to create configuration (--version)
|
||||
Option.configure.version.tip=This outputs the version of the Autotools used to create the configuration files
|
||||
|
||||
OptionCategory.configure.platform=Platform Specifiers
|
||||
Option.configure.host=Host platform (--host)
|
||||
Option.configure.host.tip=Platform that project will run on
|
||||
Option.configure.target=Target platform (--target)
|
||||
Option.configure.target.tip=Platform that project will target output for
|
||||
Option.configure.build=Build platform (--build)
|
||||
Option.configure.build.tip=Platform where project is being built
|
||||
|
||||
OptionCategory.configure.directories=Directory specifiers
|
||||
Option.configure.prefix=Arch-independent install directory (--prefix)
|
||||
Option.configure.prefix.tip=Place where architecture-independent files are installed [/usr/local]
|
||||
Option.configure.exec_prefix=Arch-dependent install directory (--exec-prefix)
|
||||
Option.configure.exec_prefix.tip=Place where architecture-dependent files are installed [PREFIX]
|
||||
Option.configure.libdir=Object code library directory (--libdir)
|
||||
Option.configure.libdir.tip=Place where object code libraries are installed [EPREFIX/lib]
|
||||
Option.configure.bindir=User executable directory (--bindir)
|
||||
Option.configure.bindir.tip=Place where binary executables are installed [EPREFIX/bin]
|
||||
Option.configure.sbindir=System admin executable directory (--sbindir)
|
||||
Option.configure.sbindir.tip=Place where system admin executables are installed [EPREFIX/sbin]
|
||||
Option.configure.includedir=C Header file directory (--includdir)
|
||||
Option.configure.includedir.tip=Place where header files will be installed [PREFIX/include]
|
||||
Option.configure.datadir=Read-only architecture-independent data (--datadir)
|
||||
Option.configure.datadir.tip=Place where read-only architecture-independent data is installed [PREFIX/share]
|
||||
Option.configure.sysconfdir=Read-only single-machine data directory (--syconfdir)
|
||||
Option.configure.sysconfdir.tip=Place where read-only single-machine data is stored [PREFIX/etc]
|
||||
Option.configure.infodir=Info file documentation directory (--infodir)
|
||||
Option.configure.infodir.tip=Place where info files are installed [PREFIX/info]
|
||||
Option.configure.mandir=Man file documentation directory (--mandir)
|
||||
Option.configure.mandir.tip=Place where man file documentation is installed [PREFIX/man]
|
||||
Option.configure.srcdir=Sources directory (--srcdir)
|
||||
Option.configure.srcdir.tip=Place where configure can find sources [configure directory or ..]
|
||||
Option.configure.localstatedir=Modifiable single-machine data directory (--localstatedir)
|
||||
Option.configure.localstatedir.tip=Place where modifiable single-machine data is installed [PREFIX/var]
|
||||
Option.configure.sharedstatedir=Modifiable architecture-independent data directory (--sharedstatedir)
|
||||
Option.configure.sharedstatedir.tip=Place where modifiable architecture-independent data is installed [PREFIX/com]
|
||||
Option.configure.libexecdir=Program executable directory (--libexecdir)
|
||||
Option.configure.libexecdir=Place where program executables will be installed [EPREFIX/libexec]
|
||||
Option.configure.oldincludedir=Non-gcc C header file directory (--oldincludedir)
|
||||
Option.configure.oldincludedir.tip=Place where non-gcc C header files are installed [/usr/include]
|
||||
|
||||
OptionCategory.configure.filenames=File-name transformations
|
||||
Option.configure.program_prefix=Installed program prefix (--program-prefix)
|
||||
Option.configure.program_prefix.tip=Prepend PREFIX to the beginning of installed program names
|
||||
Option.configure.program_suffix=Installed program suffix (--program-suffix)
|
||||
Option.configure.program_suffix.tip=Append SUFFIX to the end of installed program names
|
||||
Option.configure.program_transform_name=Installed program name transform (--program-transform-name)
|
||||
Option.configure.program_transform_name.tip=A sed string used to transform installed program names
|
||||
|
||||
OptionCategory.configure.features=Features and packages
|
||||
Option.configure.enable_maintainer_mode=Enable maintainer mode (--enable-maintainer-mode)
|
||||
Option.configure.enable_maintainer_mode.tip=Specify this to have Makefiles generated with checks for Autotool configuration file changes
|
||||
Option.configure.user=User-specified configuration options
|
||||
Option.configure.user.tip=Specify one or more configuration options (e.g. --enable-FEATURE, --disable-FEATURE, or --with-PACKAGE)
|
||||
|
||||
Tool.autogen = autogen.sh
|
||||
|
||||
OptionCategory.autogen.general=Options
|
||||
Option.autogen.user=Command line options
|
||||
Option.autogen.user.tip=Specify options to pass to the top-level autogen.sh script
|
||||
|
||||
RedHatVendor.name = Red Hat
|
||||
Bundle-Name.0 = Autotools UI Plug-in
|
||||
provider=Eclipse CDT
|
||||
|
|
|
@ -74,6 +74,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
|
|||
public static enum UnusedHeaderStrategy { skip, useC, useCPP, useDefaultLanguage, useBoth }
|
||||
private static final int MAX_ERRORS = 500;
|
||||
|
||||
// Order of constants is important. Stronger update types have to precede the weaker ones.
|
||||
private static enum UpdateKind { REQUIRED_SOURCE, REQUIRED_HEADER, ONE_LINKAGE_HEADER, OTHER_HEADER }
|
||||
|
||||
private static class LinkageTask {
|
||||
|
@ -119,7 +120,8 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
|
|||
boolean requestUpdate(IIndexFragmentFile ifile, Object tu, UpdateKind kind) {
|
||||
if (tu != null)
|
||||
fTu= tu;
|
||||
if (kind != null)
|
||||
// Change fKind only if it becomes stronger as a result.
|
||||
if (fKind == null || (kind != null && kind.compareTo(fKind) < 0))
|
||||
fKind= kind;
|
||||
|
||||
if (ifile == null) {
|
||||
|
@ -638,7 +640,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
|
|||
for (IIndexFragmentFile ifile : indexFiles) {
|
||||
if (ifile != null) {
|
||||
IIndexInclude ctx= ifile.getParsedInContext();
|
||||
if (ctx == null && !indexedUnconditionally) {
|
||||
if (ctx == null && !indexedUnconditionally && ifile.hasContent()) {
|
||||
iFilesToRemove.add(ifile);
|
||||
count++;
|
||||
} else {
|
||||
|
@ -899,7 +901,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
|
|||
final IIndexFragmentFile headerFile = versionTask.fIndexFile;
|
||||
|
||||
final int safeguardSize= safeGuard.size();
|
||||
for(;;) {
|
||||
while (true) {
|
||||
// Look for a context and parse the file
|
||||
IIndexFragmentFile ctxFile = findContextFile(linkageID, map, versionTask, safeGuard, monitor);
|
||||
if (ctxFile == null || ctxFile == headerFile)
|
||||
|
@ -951,7 +953,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
|
|||
final FileVersionTask versionTask, LinkedHashSet<IIndexFile> safeGuard, IProgressMonitor monitor)
|
||||
throws CoreException, InterruptedException {
|
||||
IIndexFragmentFile ctxFile= versionTask.fIndexFile;
|
||||
for(;;) {
|
||||
while (true) {
|
||||
IIndexInclude ctxInclude= ctxFile.getParsedInContext();
|
||||
if (ctxInclude == null)
|
||||
return ctxFile;
|
||||
|
@ -960,7 +962,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
|
|||
if (nextCtx == null)
|
||||
return nextCtx;
|
||||
|
||||
// Found a recursion
|
||||
// Found a recursion.
|
||||
if (!safeGuard.add(nextCtx))
|
||||
return null;
|
||||
|
||||
|
@ -984,7 +986,6 @@ public abstract class AbstractIndexerTask extends PDOMWriter {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
private DependsOnOutdatedFileException parseFile(Object tu, AbstractLanguage lang,
|
||||
IIndexFileLocation ifl, IScannerInfo scanInfo, FileContext ctx, IProgressMonitor pm)
|
||||
throws CoreException, InterruptedException {
|
||||
|
|
|
@ -221,17 +221,16 @@ abstract public class PDOMWriter {
|
|||
data.fSymbolMap.put(file.includeStatement, new Symbols());
|
||||
}
|
||||
|
||||
|
||||
// Extract symbols from AST
|
||||
// Extract symbols from AST.
|
||||
extractSymbols(data);
|
||||
|
||||
// Name resolution
|
||||
// Name resolution.
|
||||
resolveNames(data, pm);
|
||||
|
||||
// Index update
|
||||
// Index update.
|
||||
storeSymbolsInIndex(data, ctx, flushIndex, pm);
|
||||
|
||||
// Tasks update
|
||||
// Tasks update.
|
||||
if (taskUpdater != null) {
|
||||
Set<IIndexFileLocation> locations= new HashSet<IIndexFileLocation>();
|
||||
for (FileInAST file : selectedFiles) {
|
||||
|
|
|
@ -200,6 +200,7 @@ import org.eclipse.cdt.ui.text.folding.ICFoldingStructureProvider;
|
|||
|
||||
import org.eclipse.cdt.internal.core.model.ASTCache.ASTRunnable;
|
||||
import org.eclipse.cdt.internal.core.pdom.indexer.IndexerPreferences;
|
||||
import org.eclipse.cdt.internal.corext.util.CModelUtil;
|
||||
import org.eclipse.cdt.internal.corext.util.CodeFormatterUtil;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
||||
|
@ -1286,11 +1287,11 @@ public class CEditor extends TextEditor implements ICEditor, ISelectionChangedLi
|
|||
try {
|
||||
IIndexManager indexManager = CCorePlugin.getIndexManager();
|
||||
if (tuToReset != null) {
|
||||
indexManager.update(new ICElement[] { tuToReset },
|
||||
indexManager.update(new ICElement[] { CModelUtil.toOriginal(tuToReset) },
|
||||
IIndexManager.RESET_INDEX_INCLUSION | IIndexManager.UPDATE_CHECK_TIMESTAMPS);
|
||||
}
|
||||
if (tuToAdd != null) {
|
||||
indexManager.update(new ICElement[] { tuToAdd },
|
||||
indexManager.update(new ICElement[] { CModelUtil.toOriginal(tuToAdd) },
|
||||
IIndexManager.FORCE_INDEX_INCLUSION | IIndexManager.UPDATE_CHECK_TIMESTAMPS);
|
||||
}
|
||||
} catch (CoreException e) {
|
||||
|
|
|
@ -12,7 +12,6 @@ package org.eclipse.cdt.debug.ui.breakpointactions;
|
|||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.StringReader;
|
||||
import com.ibm.icu.text.MessageFormat;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
@ -31,22 +30,46 @@ import org.eclipse.core.runtime.IProgressMonitor;
|
|||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.MultiStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.jobs.Job;
|
||||
import org.eclipse.debug.core.DebugPlugin;
|
||||
import org.eclipse.debug.core.ILaunchConfiguration;
|
||||
import org.eclipse.debug.core.ILaunchManager;
|
||||
import org.eclipse.debug.core.model.IBreakpoint;
|
||||
import org.eclipse.debug.ui.DebugUITools;
|
||||
import org.eclipse.ui.progress.WorkbenchJob;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.helpers.DefaultHandler;
|
||||
|
||||
import com.ibm.icu.text.MessageFormat;
|
||||
|
||||
public class ExternalToolAction extends AbstractBreakpointAction {
|
||||
|
||||
private String externalToolName = ""; //$NON-NLS-1$
|
||||
|
||||
@Override
|
||||
public IStatus execute(IBreakpoint breakpoint, IAdaptable context, IProgressMonitor monitor) {
|
||||
public IStatus execute(final IBreakpoint breakpoint, final IAdaptable context, final IProgressMonitor monitor) {
|
||||
Job uiJob = new WorkbenchJob("ExternalToolAction") { //$NON-NLS-1$
|
||||
{
|
||||
setPriority(INTERACTIVE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IStatus runInUIThread(IProgressMonitor monitor) {
|
||||
return executeInUIThread(breakpoint, context, monitor);
|
||||
}
|
||||
};
|
||||
uiJob.schedule();
|
||||
try {
|
||||
uiJob.join();
|
||||
} catch (InterruptedException e) {
|
||||
return Status.CANCEL_STATUS;
|
||||
}
|
||||
return uiJob.getResult();
|
||||
}
|
||||
|
||||
private IStatus executeInUIThread(IBreakpoint breakpoint, IAdaptable context, IProgressMonitor monitor) {
|
||||
IStatus errorStatus = null;
|
||||
ILaunchManager lcm = DebugPlugin.getDefault().getLaunchManager();
|
||||
try {
|
||||
|
|
|
@ -50,7 +50,7 @@ public abstract class AbstractBreakpointVMNode extends AbstractVMNode {
|
|||
|
||||
/**
|
||||
* Class that creates the element object for the corresponding breakpoints.
|
||||
* This element object will be populated in the breakpoitns view to represent
|
||||
* This element object will be populated in the breakpoints view to represent
|
||||
* the given breakpoint.
|
||||
*/
|
||||
abstract protected Object createBreakpiontElement(IBreakpoint bp);
|
||||
|
|
|
@ -31,7 +31,7 @@ import org.eclipse.swt.graphics.RGB;
|
|||
import org.eclipse.ui.IMemento;
|
||||
|
||||
/**
|
||||
* Breakpiont VM Node which uses VM Contexts to populate breakpoint elements
|
||||
* Breakpoint VM Node which uses VM Contexts to populate breakpoint elements
|
||||
* in the view. Any actions or other selection listeners which depend on the
|
||||
* breakpoint object will not work with these elements unless they use the
|
||||
* adapter mechanism to obtain the breakpoints.
|
||||
|
|
|
@ -24,7 +24,6 @@ import org.eclipse.cdt.dsf.concurrent.RequestMonitor;
|
|||
import org.eclipse.cdt.dsf.datamodel.DMContexts;
|
||||
import org.eclipse.cdt.dsf.datamodel.IDMContext;
|
||||
import org.eclipse.cdt.dsf.debug.service.IBreakpoints.IBreakpointsTargetDMContext;
|
||||
import org.eclipse.cdt.dsf.debug.ui.viewmodel.expression.IExpressionVMNode;
|
||||
import org.eclipse.cdt.dsf.internal.ui.DsfUIPlugin;
|
||||
import org.eclipse.cdt.dsf.ui.viewmodel.AbstractVMAdapter;
|
||||
import org.eclipse.cdt.dsf.ui.viewmodel.AbstractVMProvider;
|
||||
|
@ -58,15 +57,8 @@ import org.eclipse.jface.viewers.TreePath;
|
|||
import org.eclipse.ui.IWorkbenchWindow;
|
||||
|
||||
/**
|
||||
* The expression provider is used to populate the contents of the expressions
|
||||
* view. The node hierarchy in this view is a little different than in a typical
|
||||
* provider: the expression manager node should be registered as the single child
|
||||
* of the root node and no nodes should be registered as children of expression node.
|
||||
* Instead the top level expression nodes should be registered with a call to
|
||||
* {@link #setExpressionNodes(IExpressionVMNode[])}. And each expression node can
|
||||
* have its own sub-hierarchy of elements as needed. However all nodes configured
|
||||
* with this provider (with the exception of the root and the expression manager)
|
||||
* should implement {@link IExpressionVMNode}.
|
||||
* The breakpoint provider is used to populate the contents of the breakpoints
|
||||
* view.
|
||||
*
|
||||
* @since 2.1
|
||||
*/
|
||||
|
|
|
@ -98,7 +98,7 @@ abstract class DataCache<V> {
|
|||
}
|
||||
|
||||
/**
|
||||
* Request data from the cache. The cache is valid, it will complete the
|
||||
* Request data from the cache. If the cache is valid, it will complete the
|
||||
* request immediately, otherwise data will first be retrieved from the
|
||||
* source.
|
||||
* @param req
|
||||
|
|
|
@ -13,7 +13,7 @@ package org.eclipse.cdt.dsf.debug.ui.viewmodel.breakpoints;
|
|||
import org.eclipse.debug.core.model.IBreakpoint;
|
||||
|
||||
/**
|
||||
* Breakpoint node which uses raw breakpiont objects (without a wrapper) as
|
||||
* Breakpoint node which uses raw breakpoint objects (without a wrapper) as
|
||||
* elements which are populated into the view. The breakpoint objects are
|
||||
* responsible for supplying their own label and memento providers, as well
|
||||
* as content provider for any children.
|
||||
|
|
|
@ -34,7 +34,7 @@ public interface IBreakpointsExtension extends IBreakpoints {
|
|||
}
|
||||
|
||||
/**
|
||||
* If a given execution context was suspended due hitting a breakpoint,
|
||||
* If a given execution context was suspended due to hitting a breakpoint,
|
||||
* this method should return the breakpoints which caused the thread or
|
||||
* container to suspend.
|
||||
* <p>
|
||||
|
|
Loading…
Add table
Reference in a new issue