Skip to content

Commit 18f9b82

Browse files
author
jantje
committed
Implementing targetTools and targetTool manager partial checkin
Checking in for move systems
1 parent 0058b25 commit 18f9b82

File tree

19 files changed

+200
-87
lines changed

19 files changed

+200
-87
lines changed

io.sloeber.autoBuild.test/launch/Autobuild CreateBasicProjects.launch

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
</listAttribute>
2323
<mapAttribute key="org.eclipse.debug.core.environmentVariables">
2424
<mapEntry key="MAKE_HOME" value="E:\platform\arduinoPlugin\tools\make\"/>
25-
<mapEntry key="PATH" value="E:\platform\arduinoPlugin\packages\Jantje\tools\MinGW\5.3.0\bin;E:\LLVM\bin"/>
2625
</mapAttribute>
2726
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
2827
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="true"/>

io.sloeber.autoBuild.test/launch/AutobuildCreateProject.launch

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
</listAttribute>
2323
<mapAttribute key="org.eclipse.debug.core.environmentVariables">
2424
<mapEntry key="MAKE_HOME" value="E:\platform\arduinoPlugin\tools\make\"/>
25-
<mapEntry key="PATH" value="E:\platform\arduinoPlugin\packages\Jantje\tools\MinGW\5.3.0\bin;E:\LLVM\bin"/>
2625
</mapAttribute>
2726
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
2827
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="true"/>

io.sloeber.autoBuild.test/src/io/sloeber/autoBuild/regression/CreateBasicProjects.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import io.sloeber.autoBuild.api.IAutoBuildConfigurationDescription;
2727
import io.sloeber.autoBuild.api.ICodeProvider;
2828
import io.sloeber.autoBuild.api.IToolProvider;
29-
import io.sloeber.autoBuild.api.IToolProviderManager;
29+
import io.sloeber.autoBuild.api.ITargetToolManager;
3030
import io.sloeber.autoBuild.extensionPoint.providers.AutoBuildCommon;
3131
import io.sloeber.autoBuild.helpers.Shared;
3232
import io.sloeber.autoBuild.helpers.TemplateTestCodeProvider;
@@ -41,7 +41,7 @@ public class CreateBasicProjects {
4141
private boolean doTestDefaultBuilder = true;
4242
private boolean doTestInternalBuilder = true;
4343
private boolean doTestMakeBuilder = true;
44-
static IToolProvider toolprovider = IToolProviderManager.getDefault().getAnyToolProvider();
44+
static IToolProvider toolprovider = ITargetToolManager.getDefault().getAnyInstalledToolProvider();
4545

4646
@BeforeAll
4747
static void beforeAll() {

io.sloeber.autoBuild.test/src/io/sloeber/autoBuild/regression/CreateProject.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import io.sloeber.autoBuild.api.AutoBuildProject;
1212
import io.sloeber.autoBuild.api.ICodeProvider;
1313
import io.sloeber.autoBuild.api.IToolProvider;
14-
import io.sloeber.autoBuild.api.IToolProviderManager;
14+
import io.sloeber.autoBuild.api.ITargetToolManager;
1515
import io.sloeber.autoBuild.extensionPoint.providers.AutoBuildCommon;
1616
import io.sloeber.autoBuild.helpers.Shared;
1717
import io.sloeber.autoBuild.helpers.TemplateTestCodeProvider;
@@ -27,7 +27,7 @@
2727

2828
@SuppressWarnings("nls")
2929
class CreateProject {
30-
static IToolProvider toolprovider = IToolProviderManager.getDefault().getAnyToolProvider();
30+
static IToolProvider toolprovider = ITargetToolManager.getDefault().getAnyInstalledToolProvider();
3131

3232
@BeforeAll
3333
static void beforeAll() {

io.sloeber.autoBuild.test/src/io/sloeber/autoBuild/regression/issues.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121

2222
import io.sloeber.autoBuild.api.AutoBuildProject;
2323
import io.sloeber.autoBuild.api.IToolProvider;
24-
import io.sloeber.autoBuild.api.IToolProviderManager;
24+
import io.sloeber.autoBuild.api.ITargetToolManager;
2525
import io.sloeber.autoBuild.helpers.Shared;
2626
import io.sloeber.autoBuild.helpers.TemplateTestCodeProvider;
2727

2828
@SuppressWarnings({ "nls", "static-method" })
2929
public class issues {
30-
static IToolProvider toolprovider = IToolProviderManager.getDefault().getAnyToolProvider();
30+
static IToolProvider toolprovider = ITargetToolManager.getDefault().getAnyInstalledToolProvider();
3131

3232
@BeforeAll
3333
public static void beforeAll() {

io.sloeber.autoBuild.test/src/io/sloeber/autoBuild/regression/regression.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import io.sloeber.autoBuild.api.AutoBuildProject;
3030
import io.sloeber.autoBuild.api.IAutoBuildConfigurationDescription;
3131
import io.sloeber.autoBuild.api.IToolProvider;
32-
import io.sloeber.autoBuild.api.IToolProviderManager;
32+
import io.sloeber.autoBuild.api.ITargetToolManager;
3333
import io.sloeber.autoBuild.extensionPoint.providers.MakeRule;
3434
import io.sloeber.autoBuild.extensionPoint.providers.MakeRules;
3535
import io.sloeber.autoBuild.helpers.Shared;
@@ -42,7 +42,7 @@
4242
public class regression {
4343
static private String extensionPointID = "io.sloeber.autoBuild.buildDefinitions";
4444
static int testCounter = 1;
45-
static IToolProvider toolprovider = IToolProviderManager.getDefault().getAnyToolProvider();
45+
static IToolProvider toolprovider = ITargetToolManager.getDefault().getAnyInstalledToolProvider();
4646

4747
@BeforeAll
4848
public static void beforeAll() {

io.sloeber.autoBuild.test/src/io/sloeber/autoBuilld/investigate/CConfigurationDescriptionInvestigation.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import org.junit.jupiter.api.BeforeAll;
1818
import io.sloeber.autoBuild.api.AutoBuildProject;
1919
import io.sloeber.autoBuild.api.IToolProvider;
20-
import io.sloeber.autoBuild.api.IToolProviderManager;
20+
import io.sloeber.autoBuild.api.ITargetToolManager;
2121
import io.sloeber.autoBuild.helpers.Shared;
2222
import io.sloeber.autoBuild.helpers.TemplateTestCodeProvider;
2323

@@ -39,7 +39,7 @@ static void beforeAll() {
3939
public void testConfigDescription() {
4040
beforeAll();
4141
String projectName = "testConfigDescription";
42-
IToolProvider toolprovider = IToolProviderManager.getDefault().getAnyToolProvider();
42+
IToolProvider toolprovider = ITargetToolManager.getDefault().getAnyInstalledToolProvider();
4343
IProject testProject = AutoBuildProject.createProject(projectName, defaultExtensionPointID, defaultExtensionID,
4444
defaultProjectTypeID, defaultNatureID, new TemplateTestCodeProvider("exe"), toolprovider, false, null);
4545
ICProjectDescription projectDesc = CoreModel.getDefault().getProjectDescription(testProject, true);

io.sloeber.autoBuild.ui/src/io/sloeber/autoBuild/integrations/NewAutoBuildProjectWizard.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import io.sloeber.autoBuild.api.AutoBuildProject;
2828
import io.sloeber.autoBuild.api.ICodeProvider;
2929
import io.sloeber.autoBuild.api.IToolProvider;
30-
import io.sloeber.autoBuild.api.IToolProviderManager;
30+
import io.sloeber.autoBuild.api.ITargetToolManager;
3131
import io.sloeber.autoBuild.integration.AutoBuildManager;
3232
import io.sloeber.autoBuild.integration.AutoBuildProjectGenerator;
3333
import io.sloeber.autoBuild.ui.internal.Messages;
@@ -45,7 +45,7 @@ public boolean performFinish() {
4545
.toArray(new String[10])[0];
4646
String natureID = CCProjectNature.CC_NATURE_ID;
4747
ICodeProvider codeProvider = null;
48-
IToolProvider toolProvider = IToolProviderManager.getDefault().getAnyToolProvider();
48+
IToolProvider toolProvider = ITargetToolManager.getDefault().getAnyInstalledToolProvider();
4949
getContainer().run(true, true, new WorkspaceModifyOperation() {
5050
@Override
5151
protected void execute(IProgressMonitor monitor)

io.sloeber.autoBuild/OSGI-INF/l10n/bundle.properties

+14-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#Properties file for io.sloeber.core
22

3+
4+
minGWToolProviderName=MinGW tool provider
5+
36
autoBuild.configuration.name = Release
47
inputType.archiver.name = OBJ Files to archive
58
inputType.Asembly.name = Assembly source files
@@ -31,15 +34,20 @@ autoBuild.outputType.S.exe.name = Object Files ( from assembly to executable)
3134
autoBuild.projectType.name = Compound executable project
3235
autoBuild.tooolChain.name = Compound Toolchain
3336
autoBuild.builder.name = Auto Build Builder
34-
autoBuild.tool.gcc.compiler = GNU C file compiler
37+
38+
autoBuild.tool.archiver = GNU archiver
39+
autoBuild.tool.assembler = GNU assembler
40+
41+
3542
autoBuild.tool.gpp.compiler = GNU C++ file compiler
36-
autoBuild.tool.gpp.linker.staticLib = GNU linker for static libs
37-
autoBuild.tool.cpp.linker.dynamic.Lib = GNU C++ linker for dynamic libraries
38-
autoBuild.tool.c.linker.dynamic.Lib = GNU C linker for dynamic libraries
43+
autoBuild.tool.gpp.linker.staticLib = GNU C++ linker for static libs
44+
autoBuild.tool.gpp.linker.dynamic.Lib = GNU C++ linker for dynamic libraries
3945
autoBuild.tool.gpp.linker.exe = GNU C++ linker for executables
46+
47+
autoBuild.tool.gcc.compiler = GNU C file compiler
48+
autoBuild.tool.gcc.linker.staticLib = GNU C linker for static libs
49+
autoBuild.tool.gcc.linker.dynamic.Lib = GNU C linker for dynamic libraries
4050
autoBuild.tool.gcc.linker.exe = GNU C linker for executables
41-
autoBuild.tool.gcc.archiver = GNU archiver
42-
autoBuild.tool.gcc.assembler = GNU assembler
4351

4452

4553
cross.gnu.toolChain.name = Cross GCC

io.sloeber.autoBuild/plugin.xml

+20-11
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,8 @@
214214
id="cdt.autobuild.tool.assembler"
215215
name="%ToolName.assembler"
216216
natureFilter="both"
217-
outputFlag="-o">
217+
outputFlag="-o"
218+
toolType="a-&gt;a.o">
218219
<optionCategory
219220
id="gnu.asm.category.general"
220221
name="%OptionCategory.General"
@@ -269,7 +270,8 @@
269270
id="cdt.autobuild.tool.c.compiler"
270271
name="%ToolName.compiler.c"
271272
natureFilter="both"
272-
outputFlag="-o">
273+
outputFlag="-o"
274+
toolType="c-&gt;c.o">
273275
<optionCategory
274276
id="gnu.c.compiler.category.dialect"
275277
name="%OptionCategory.Dialect"
@@ -809,7 +811,8 @@
809811
id="cdt.autobuild.tool.cpp.compiler"
810812
name="%ToolName.compiler.cpp"
811813
natureFilter="ccnature"
812-
outputFlag="-o">
814+
outputFlag="-o"
815+
toolType="cpp-&gt;cpp.o">
813816
<optionCategory
814817
id="gnu.cpp.compiler.category.dialect"
815818
name="%OptionCategory.Dialect"
@@ -1395,7 +1398,8 @@
13951398
errorParsers="org.eclipse.cdt.core.GLDErrorParser"
13961399
id="cdt.autobuild.tool.cpp.exe.linker"
13971400
name="%ToolName.exe.linker.cpp"
1398-
outputFlag="-o">
1401+
outputFlag="-o"
1402+
toolType="cpp.o-&gt;exe">
13991403
<optionCategory
14001404
id="gnu.cpp.link.category.options"
14011405
name="%OptionCategory.General"
@@ -1547,7 +1551,8 @@
15471551
name="%ToolName.dynamic.lib.linker.cpp"
15481552
natureFilter="ccnature"
15491553
outputFlag="-o"
1550-
superClass="cdt.autobuild.tool.cpp.exe.linker">
1554+
superClass="cdt.autobuild.tool.cpp.exe.linker"
1555+
toolType="cpp.o-&gt;so/dll">
15511556
<option
15521557
category="gnu.c.link.category.shared"
15531558
command="-shared"
@@ -1582,7 +1587,8 @@
15821587
id="cdt.autobuild.tool.c.exe.linker"
15831588
name="%ToolName.exe.linker.c"
15841589
natureFilter="cnature"
1585-
outputFlag="-o">
1590+
outputFlag="-o"
1591+
toolType="c.o-&gt;exe">
15861592
<optionCategory
15871593
id="gnu.c.link.category.general"
15881594
name="%OptionCategory.General"
@@ -1739,7 +1745,8 @@
17391745
command="ar"
17401746
id="cdt.autobuild.tool.archiver"
17411747
name="%ToolName.archiver"
1742-
natureFilter="both">
1748+
natureFilter="both"
1749+
toolType="o-&gt;ar">
17431750
<optionCategory
17441751
id="gnu.lib.category.general"
17451752
name="%OptionCategory.General"
@@ -1774,7 +1781,8 @@
17741781
<tool
17751782
id="cdt.autobuild.tool.c.dynamic.lib.linker"
17761783
name="%ToolName.dynamic.lib.linker.c"
1777-
superClass="cdt.autobuild.tool.c.exe.linker">
1784+
superClass="cdt.autobuild.tool.c.exe.linker"
1785+
toolType="c.o-&gt;so/dll">
17781786
<outputType
17791787
id="cdt.autobuild.tool.dynamic.lib.c.linker.output.so"
17801788
superClass="cdt.autobuild.tool.dynamic.lib.cpp.linker.output.so">
@@ -1891,9 +1899,10 @@
18911899
</builder>
18921900
</toolChain>
18931901
<ToolProvider
1894-
id="io.sloeber.autoBuild.ToolProvider.Path"
1895-
name="Path Tool Provider"
1896-
toolProvider="io.sloeber.autoBuild.Internal.PathToolProvider">
1902+
Description="A tool provider for MinGW"
1903+
id="io.sloeber.autoBuild.ToolProvider.minGW"
1904+
name="%minGWToolProviderName"
1905+
toolProvider="io.sloeber.autoBuild.Internal.MinGWToolProvider">
18971906
</ToolProvider>
18981907

18991908
</extension>

io.sloeber.autoBuild/schema/buildDefinitions.exsd

+11-5
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ Not this can be overruled by command and false command in case of a boolean
385385
</restriction>
386386
</simpleType>
387387
</attribute>
388-
<attribute name="tool type">
388+
<attribute name="toolType">
389389
<annotation>
390390
<documentation>
391391
The type of tool.
@@ -394,15 +394,21 @@ When the type of tool is specified and a tool provider is specified; the comman
394394
</annotation>
395395
<simpleType>
396396
<restriction base="string">
397-
<enumeration value="a->o">
397+
<enumeration value="a->a.o">
398398
</enumeration>
399-
<enumeration value="c(pp)->o">
399+
<enumeration value="cpp->cpp.o">
400+
</enumeration>
401+
<enumeration value="c->c.o">
402+
</enumeration>
403+
<enumeration value="c.o->so/dll">
404+
</enumeration>
405+
<enumeration value="cpp.o->so/dll">
400406
</enumeration>
401407
<enumeration value="o->ar">
402408
</enumeration>
403-
<enumeration value="o->so/dll">
409+
<enumeration value="c.o->exe">
404410
</enumeration>
405-
<enumeration value="o->exe">
411+
<enumeration value="cpp.o->exe">
406412
</enumeration>
407413
</restriction>
408414
</simpleType>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package io.sloeber.autoBuild.Internal;
2+
3+
import java.nio.file.Path;
4+
import java.util.Map;
5+
6+
import io.sloeber.autoBuild.api.IToolProvider;
7+
import io.sloeber.autoBuild.api.ITargetToolManager;
8+
import io.sloeber.autoBuild.api.ITargetToolManager.ToolFlavour;
9+
import io.sloeber.autoBuild.api.ITargetToolManager.ToolType;
10+
import org.eclipse.cdt.internal.core.MinGW;
11+
12+
public class MinGWToolProvider implements IToolProvider {
13+
private static String myMinGWHome = null;
14+
private static Path myMinGPath = null;
15+
final private static String MINGW_ID = "system_Installed_Mingw"; //$NON-NLS-1$
16+
private static boolean holdsAllTools = false;
17+
18+
static {
19+
myMinGWHome = org.eclipse.cdt.internal.core.MinGW.getMinGWHome();
20+
if (myMinGWHome != null) {
21+
holdsAllTools = true;
22+
myMinGPath = Path.of(myMinGWHome);
23+
}
24+
}
25+
26+
public MinGWToolProvider() {
27+
//nothing to be done here
28+
}
29+
30+
@Override
31+
public boolean holdsAllTools() {
32+
return holdsAllTools;
33+
}
34+
35+
@Override
36+
public String getSelectionID() {
37+
return MINGW_ID;
38+
}
39+
40+
@Override
41+
public Map<String, String> getEnvironmentVariables() {
42+
// TODO Auto-generated method stub
43+
return null;
44+
}
45+
46+
@Override
47+
public Map<String, String> getToolVariables() {
48+
// TODO Auto-generated method stub
49+
return null;
50+
}
51+
52+
@Override
53+
public String getCommand(ToolType toolType) {
54+
return ITargetToolManager.getDefault().getDefaultCommand(getToolFlavour(), toolType);
55+
}
56+
57+
@Override
58+
public Path getToolLocation(ToolType toolType) {
59+
return myMinGPath;
60+
}
61+
62+
@Override
63+
public ToolFlavour getToolFlavour() {
64+
return ToolFlavour.MINGW;
65+
}
66+
67+
@Override
68+
public String getID() {
69+
return MINGW_ID;
70+
}
71+
72+
}

io.sloeber.autoBuild/src/io/sloeber/autoBuild/Internal/PathToolProvider.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
import static java.util.regex.Pattern.quote;
1515

1616
import io.sloeber.autoBuild.api.IToolProvider;
17-
import io.sloeber.autoBuild.api.IToolProviderManager;
18-
import io.sloeber.autoBuild.api.IToolProviderManager.ToolFlavour;
19-
import io.sloeber.autoBuild.api.IToolProviderManager.ToolType;
17+
import io.sloeber.autoBuild.api.ITargetToolManager;
18+
import io.sloeber.autoBuild.api.ITargetToolManager.ToolFlavour;
19+
import io.sloeber.autoBuild.api.ITargetToolManager.ToolType;
2020

2121
public class PathToolProvider implements IToolProvider {
2222

@@ -53,7 +53,7 @@ public Map<String, String> getToolVariables() {
5353
@Override
5454
public String getCommand(ToolType toolType) {
5555
if (holdsAllTools()) {
56-
IToolProviderManager toolProviderManager = IToolProviderManager.getDefault();
56+
ITargetToolManager toolProviderManager = ITargetToolManager.getDefault();
5757
return toolProviderManager.getDefaultCommand(getToolFlavour(), toolType);
5858
}
5959
return null;
@@ -73,7 +73,7 @@ public ToolFlavour getToolFlavour() {
7373
@Override
7474
public boolean holdsAllTools() {
7575
if (myHoldAllTools == null) {
76-
IToolProviderManager toolProviderManager = IToolProviderManager.getDefault();
76+
ITargetToolManager toolProviderManager = ITargetToolManager.getDefault();
7777
Set<String> commands = new HashSet<>();
7878
//get all the commands removing duplicate
7979
for (ToolType curToolType : ToolType.values()) {

0 commit comments

Comments
 (0)