author | stechong |
Thu, 25 Feb 2010 23:33:10 -0600 | |
branch | RCL_2_4 |
changeset 136 | c488f61fb898 |
parent 134 | e4dfdbcc0926 |
permissions | -rw-r--r-- |
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
1 |
/******************************************************************************* |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
2 |
* Copyright (c) 2008 Nokia and others. |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
3 |
* All rights reserved. This program and the accompanying materials |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
4 |
* are made available under the terms of the Eclipse Public License v1.0 |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
5 |
* which accompanies this distribution, and is available at |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
6 |
* http://www.eclipse.org/legal/epl-v10.html |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
7 |
* |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
8 |
* Contributors: |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
9 |
* Nokia - Initial API and implementation |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
10 |
*******************************************************************************/ |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
11 |
|
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
12 |
package org.eclipse.cdt.debug.core.executables; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
13 |
|
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
14 |
import java.util.ArrayList; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
15 |
import java.util.List; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
16 |
|
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
17 |
import org.eclipse.cdt.core.CCProjectNature; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
18 |
import org.eclipse.cdt.core.CProjectNature; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
19 |
import org.eclipse.cdt.core.model.CModelException; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
20 |
import org.eclipse.cdt.core.model.IBinary; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
21 |
import org.eclipse.cdt.core.model.ICProject; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
22 |
import org.eclipse.cdt.debug.core.CDebugCorePlugin; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
23 |
import org.eclipse.cdt.internal.core.model.CModelManager; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
24 |
import org.eclipse.core.resources.IProject; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
25 |
import org.eclipse.core.resources.IResource; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
26 |
import org.eclipse.core.runtime.CoreException; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
27 |
import org.eclipse.core.runtime.IPath; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
28 |
import org.eclipse.core.runtime.IProgressMonitor; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
29 |
import org.eclipse.core.runtime.IStatus; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
30 |
import org.eclipse.core.runtime.Status; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
31 |
import org.eclipse.core.runtime.SubMonitor; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
32 |
import org.eclipse.debug.core.DebugPlugin; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
33 |
|
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
34 |
public class StandardExecutableProvider implements IProjectExecutablesProvider { |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
35 |
|
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
36 |
List<String> supportedNatureIds = new ArrayList<String>(); |
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
37 |
|
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
38 |
public StandardExecutableProvider() { |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
39 |
supportedNatureIds.add(CProjectNature.C_NATURE_ID); |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
40 |
supportedNatureIds.add(CCProjectNature.CC_NATURE_ID); |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
41 |
} |
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
42 |
|
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
43 |
public List<String> getProjectNatures() { |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
44 |
return supportedNatureIds; |
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
45 |
} |
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
46 |
|
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
47 |
public List<Executable> getExecutables(IProject project, IProgressMonitor monitor) { |
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
48 |
List<Executable> executables = new ArrayList<Executable>(); |
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
49 |
|
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
50 |
ICProject cproject = CModelManager.getDefault().create(project); |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
51 |
try { |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
52 |
IBinary[] binaries = cproject.getBinaryContainer().getBinaries(); |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
53 |
|
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
54 |
SubMonitor progress = SubMonitor.convert(monitor, binaries.length); |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
55 |
|
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
56 |
for (IBinary binary : binaries) { |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
57 |
if (progress.isCanceled()) { |
136 | 58 |
break; |
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
59 |
} |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
60 |
|
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
61 |
if (binary.isExecutable() || binary.isSharedLib()) { |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
62 |
IPath exePath = binary.getResource().getLocation(); |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
63 |
if (exePath == null) |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
64 |
exePath = binary.getPath(); |
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
65 |
executables.add(new Executable(exePath, project, binary.getResource())); |
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
66 |
} |
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
67 |
|
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
68 |
progress.worked(1); |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
69 |
} |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
70 |
} catch (CModelException e) { |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
71 |
} |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
72 |
|
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
73 |
return executables; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
74 |
} |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
75 |
|
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
76 |
public IStatus removeExecutable(Executable executable, IProgressMonitor monitor) { |
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
77 |
IResource exeResource = executable.getResource(); |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
78 |
if (exeResource != null) { |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
79 |
try { |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
80 |
exeResource.delete(true, monitor); |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
81 |
} catch (CoreException e) { |
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
82 |
DebugPlugin.log( e ); |
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
83 |
} |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
84 |
return Status.OK_STATUS; |
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
85 |
} |
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
86 |
return new Status(IStatus.WARNING, CDebugCorePlugin.PLUGIN_ID, "Can't remove " + executable.getName() + ": it is built by project \"" + executable.getProject().getName() + "\""); |
52
42077b7eab6e
Second merge to proper cdt_6_0 branch for CDT bugs 181020, 279844, & Carbide bugs 6152 & 9031.
timkelly
parents:
diff
changeset
|
87 |
} |
60
3982fab6369e
fixed executables view merge problems - bug #'s 9562, 9568, 9571.
wpaul
parents:
52
diff
changeset
|
88 |
} |