Skip to content

Commit 21cabe9

Browse files
committed
explicit inits for target options; no more toolchain index, use
hash(name); echo default tool to avoid initial error; ? required for enums initialised by hand
1 parent 8a954e0 commit 21cabe9

File tree

7 files changed

+201
-114
lines changed

7 files changed

+201
-114
lines changed

ilg.gnuarmeclipse.managedbuild.cross/plugin.xml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,6 @@
659659
valueType="includePath">
660660
</option>
661661
<option
662-
defaultValue="-fmessage-length=0"
663662
id="ilg.gnuarmeclipse.managedbuild.cross.option.base.compiler.other"
664663
isAbstract="true"
665664
name="%option.compiler.other"
@@ -840,6 +839,7 @@
840839
id="ilg.gnuarmeclipse.managedbuild.cross.option.base.arm.target.family"
841840
isAbstract="true"
842841
name="%option.target.arm.family"
842+
value="?"
843843
valueType="enumerated">
844844
<enablement
845845
type="UI_ENABLEMENT|CMD_USAGE">
@@ -1432,6 +1432,7 @@
14321432
isAbstract="true"
14331433
name="%option.target.arm.instructionset"
14341434
tip="Select between generating code that executes in ARM and Thumb states. The default for most configurations is to generate code that executes in ARM state, but the default can be changed by configuring GCC with the --with-mode=state configure option."
1435+
value="?"
14351436
valueType="enumerated">
14361437
<enablement
14371438
type="UI_ENABLEMENT|CMD_USAGE">
@@ -1773,6 +1774,7 @@
17731774
<option
17741775
id="ilg.gnuarmeclipse.managedbuild.cross.option.base.aarch64.target.family"
17751776
name="%option.target.aarch64.family"
1777+
value="?"
17761778
valueType="enumerated">
17771779
<enablement
17781780
type="UI_ENABLEMENT|CMD_USAGE">
@@ -1920,6 +1922,7 @@
19201922
<option
19211923
id="ilg.gnuarmeclipse.managedbuild.cross.option.base.aarch64.target.feature.simd"
19221924
name="%option.target.aarch64.feature.simd"
1925+
value="?"
19231926
valueType="enumerated">
19241927
<enablement
19251928
type="UI_ENABLEMENT|CMD_USAGE">
@@ -1959,6 +1962,7 @@
19591962
<option
19601963
id="ilg.gnuarmeclipse.managedbuild.cross.option.base.aarch64.target.cmodel"
19611964
name="%option.target.aarch64.cmodel"
1965+
value="?"
19621966
valueType="enumerated">
19631967
<enablement
19641968
type="UI_ENABLEMENT|CMD_USAGE">
@@ -1971,22 +1975,22 @@
19711975
</enablement>
19721976
<enumeratedOptionValue
19731977
command="-mcmodel=tiny"
1974-
id="ilg.gnuarmeclipse.managedbuild.cross.option.cross.gnu.aarch64.base.target.cmodel.tiny"
1978+
id="ilg.gnuarmeclipse.managedbuild.cross.option.base.aarch64.target.cmodel.tiny"
19751979
name="%option.target.aarch64.cmodel.tiny">
19761980
</enumeratedOptionValue>
19771981
<enumeratedOptionValue
19781982
command="-mcmodel=small"
1979-
id="ilg.gnuarmeclipse.managedbuild.cross.option.cross.gnu.aarch64.base.target.cmodel.small"
1983+
id="ilg.gnuarmeclipse.managedbuild.cross.option.base.aarch64.target.cmodel.small"
19801984
isDefault="true"
19811985
name="%option.target.aarch64.cmodel.small">
19821986
</enumeratedOptionValue>
19831987
<enumeratedOptionValue
19841988
command="-mcmodel=large"
1985-
id="ilg.gnuarmeclipse.managedbuild.cross.option.cross.gnu.aarch64.base.target.cmodel.large"
1989+
id="ilg.gnuarmeclipse.managedbuild.cross.option.base.aarch64.target.cmodel.large"
19861990
name="%option.target.aarch64.cmodel.large">
19871991
</enumeratedOptionValue>
19881992
<enumeratedOptionValue
1989-
id="ilg.gnuarmeclipse.managedbuild.cross.option.cross.gnu.aarch64.base.target.cmodel.default"
1993+
id="ilg.gnuarmeclipse.managedbuild.cross.option.base.aarch64.target.cmodel.default"
19901994
name="%option.target.aarch64.cmodel.default">
19911995
</enumeratedOptionValue>
19921996
</option>
@@ -2113,7 +2117,6 @@
21132117
</option>
21142118
<option
21152119
category="ilg.gnuarmeclipse.managedbuild.cross.optionCategory.toolchain"
2116-
defaultValue="?"
21172120
id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix"
21182121
isAbstract="false"
21192122
name="%option.toolchain.prefix"
@@ -2132,6 +2135,7 @@
21322135
</option>
21332136
<option
21342137
category="ilg.gnuarmeclipse.managedbuild.cross.optionCategory.toolchain"
2138+
defaultValue="echo"
21352139
id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c"
21362140
isAbstract="false"
21372141
name="%option.toolchain.command.c"
@@ -2141,6 +2145,7 @@
21412145
</option>
21422146
<option
21432147
category="ilg.gnuarmeclipse.managedbuild.cross.optionCategory.toolchain"
2148+
defaultValue="echo"
21442149
id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp"
21452150
isAbstract="false"
21462151
name="%option.toolchain.command.cpp"
@@ -2655,7 +2660,6 @@
26552660
</option>
26562661
<option
26572662
category="ilg.gnuarmeclipse.managedbuild.cross.optionCategory.assembler.misc"
2658-
defaultValue="-c -fmessage-length=0"
26592663
id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.other"
26602664
name="%option.assembler.other"
26612665
valueType="string">

ilg.gnuarmeclipse.managedbuild.cross/src/ilg/gnuarmeclipse/managedbuild/cross/Option.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ public static String getToolChainFlags(IConfiguration config) {
492492
sValue = null;
493493
if (sFamilyId.endsWith("." + FAMILY_ARM)) {
494494
sValue = getArmTargetFlags(config);
495-
} else if (sFamilyId.endsWith("." + FAMILY_ARM)) {
495+
} else if (sFamilyId.endsWith("." + FAMILY_AARCH64)) {
496496
sValue = getAarch64TargetFlags(config);
497497
}
498498
if (sValue != null && sValue.length() > 0)

ilg.gnuarmeclipse.managedbuild.cross/src/ilg/gnuarmeclipse/managedbuild/cross/SetCrossCommandOperation.java

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,13 @@ public void run(IProgressMonitor monitor) throws InvocationTargetException,
6262
SetCrossCommandWizardPage.PAGE_ID,
6363
SetCrossCommandWizardPage.CROSS_PROJECT_NAME);
6464

65-
String toolchainIndex = (String) MBSCustomPageManager.getPageProperty(
65+
// String toolchainIndex = (String)
66+
// MBSCustomPageManager.getPageProperty(
67+
// SetCrossCommandWizardPage.PAGE_ID,
68+
// SetCrossCommandWizardPage.CROSS_TOOLCHAIN_INDEX);
69+
String toolchainName = (String) MBSCustomPageManager.getPageProperty(
6670
SetCrossCommandWizardPage.PAGE_ID,
67-
SetCrossCommandWizardPage.CROSS_TOOLCHAIN_INDEX);
71+
SetCrossCommandWizardPage.CROSS_TOOLCHAIN_NAME);
6872
String path = (String) MBSCustomPageManager.getPageProperty(
6973
SetCrossCommandWizardPage.PAGE_ID,
7074
SetCrossCommandWizardPage.CROSS_COMMAND_PATH);
@@ -73,14 +77,14 @@ public void run(IProgressMonitor monitor) throws InvocationTargetException,
7377
// workspace/.plugins/org.eclipse.cdt.core/shareddefaults.xml
7478

7579
String pathKey = SetCrossCommandWizardPage.SHARED_CROSS_COMMAND_PATH
76-
+ "." + toolchainIndex;
80+
+ "." + toolchainName.hashCode();
7781
SharedDefaults.getInstance().getSharedDefaultsMap().put(pathKey, path);
7882

7983
SharedDefaults
8084
.getInstance()
8185
.getSharedDefaultsMap()
82-
.put(SetCrossCommandWizardPage.SHARED_CROSS_TOOLCHAIN_INDEX,
83-
toolchainIndex);
86+
.put(SetCrossCommandWizardPage.SHARED_CROSS_TOOLCHAIN_NAME,
87+
toolchainName);
8488
SharedDefaults.getInstance().updateShareDefaultsMap(
8589
SharedDefaults.getInstance().getSharedDefaultsMap());
8690

@@ -116,32 +120,37 @@ public void run(IProgressMonitor monitor) throws InvocationTargetException,
116120
}
117121
}
118122

119-
120123
System.out.println("SetCrossCommandOperation.run() end");
121124

122125
}
123126

124127
private void updateOptions(IConfiguration config) throws BuildException {
125128

126-
String sToolchainIndex = (String) MBSCustomPageManager.getPageProperty(
129+
String sToolchainName = (String) MBSCustomPageManager.getPageProperty(
127130
SetCrossCommandWizardPage.PAGE_ID,
128-
SetCrossCommandWizardPage.CROSS_TOOLCHAIN_INDEX);
131+
SetCrossCommandWizardPage.CROSS_TOOLCHAIN_NAME);
132+
133+
int toolchainIndex;
134+
try {
135+
toolchainIndex = ToolchainDefinition
136+
.findToolchainByName(sToolchainName);
137+
} catch (IndexOutOfBoundsException e) {
138+
toolchainIndex = ToolchainDefinition.getDefault();
139+
}
129140

130-
IToolChain toolchain = config.getToolChain();
131-
132141
IOption option;
133-
String val;
142+
IToolChain toolchain = config.getToolChain();
134143

135144
String sId;
136145
sId = Activator.getOptionPrefix() + ".toolchain.index";
137146
option = toolchain.getOptionBySuperClassId(sId); //$NON-NLS-1$
138-
val = sId + "." + sToolchainIndex;
147+
String val = sId + "." + String.valueOf(toolchainIndex);
139148
// Do not use config.setOption() to DO NOT save it on .cproject...
140-
// option.setValue(val);
141-
config.setOption(toolchain, option, val); // temporarily
149+
option.setValue(val);
150+
//config.setOption(toolchain, option, val); // temporarily
151+
152+
Utils.updateOptions(config, toolchainIndex);
142153

143-
Utils.updateOptions(config, sToolchainIndex);
144-
145154
String path = (String) MBSCustomPageManager.getPageProperty(
146155
SetCrossCommandWizardPage.PAGE_ID,
147156
SetCrossCommandWizardPage.CROSS_COMMAND_PATH);

0 commit comments

Comments
 (0)