Skip to content

Commit 77b6070

Browse files
author
jantje
committed
#1143 created a install workaround and put stm32 workaround there
1 parent 92abc40 commit 77b6070

File tree

2 files changed

+60
-87
lines changed

2 files changed

+60
-87
lines changed

io.sloeber.core/config/post_processing_boards_default.txt

-81
Original file line numberDiff line numberDiff line change
@@ -5,84 +5,3 @@ max32625_fthr.build.usbLib=-Ddefined_in_post_processing_boards_txt
55
max32625_mbed.build.usbLib=-Ddefined_in_post_processing_boards_txt
66
max32630_fthr.build.usbLib=-Ddefined_in_post_processing_boards_txt
77

8-
#Workaround for STM32 in windows "https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.json",
9-
#you also need to add #include "SrcWrapper" to Arduino.h
10-
Nucleo_144.RECIPE.HOOKS.PREBUILD.1.PATTERN=
11-
Nucleo_144.RECIPE.HOOKS.PREBUILD.2.PATTERN=
12-
Nucleo_144.RECIPE.HOOKS.PREBUILD.3.PATTERN=
13-
Nucleo_144.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
14-
15-
Nucleo_64.RECIPE.HOOKS.PREBUILD.1.PATTERN=
16-
Nucleo_64.RECIPE.HOOKS.PREBUILD.2.PATTERN=
17-
Nucleo_64.RECIPE.HOOKS.PREBUILD.3.PATTERN=
18-
Nucleo_64.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
19-
20-
Nucleo_32.RECIPE.HOOKS.PREBUILD.1.PATTERN=
21-
Nucleo_32.RECIPE.HOOKS.PREBUILD.2.PATTERN=
22-
Nucleo_32.RECIPE.HOOKS.PREBUILD.3.PATTERN=
23-
Nucleo_32.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
24-
25-
Disco.RECIPE.HOOKS.PREBUILD.1.PATTERN=
26-
Disco.RECIPE.HOOKS.PREBUILD.2.PATTERN=
27-
Disco.RECIPE.HOOKS.PREBUILD.3.PATTERN=
28-
Disco.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
29-
30-
Eval.RECIPE.HOOKS.PREBUILD.1.PATTERN=
31-
Eval.RECIPE.HOOKS.PREBUILD.2.PATTERN=
32-
Eval.RECIPE.HOOKS.PREBUILD.3.PATTERN=
33-
Eval.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
34-
35-
STM32MP1.RECIPE.HOOKS.PREBUILD.1.PATTERN=
36-
STM32MP1.RECIPE.HOOKS.PREBUILD.2.PATTERN=
37-
STM32MP1.RECIPE.HOOKS.PREBUILD.3.PATTERN=
38-
STM32MP1.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
39-
40-
GenF0.RECIPE.HOOKS.PREBUILD.1.PATTERN=
41-
GenF0.RECIPE.HOOKS.PREBUILD.2.PATTERN=
42-
GenF0.RECIPE.HOOKS.PREBUILD.3.PATTERN=
43-
GenF0.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
44-
45-
GenF1.RECIPE.HOOKS.PREBUILD.1.PATTERN=
46-
GenF1.RECIPE.HOOKS.PREBUILD.2.PATTERN=
47-
GenF1.RECIPE.HOOKS.PREBUILD.3.PATTERN=
48-
GenF1.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
49-
50-
GenF3.RECIPE.HOOKS.PREBUILD.1.PATTERN=
51-
GenF3.RECIPE.HOOKS.PREBUILD.2.PATTERN=
52-
GenF3.RECIPE.HOOKS.PREBUILD.3.PATTERN=
53-
GenF3.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
54-
55-
GenF4.RECIPE.HOOKS.PREBUILD.1.PATTERN=
56-
GenF4.RECIPE.HOOKS.PREBUILD.2.PATTERN=
57-
GenF4.RECIPE.HOOKS.PREBUILD.3.PATTERN=
58-
GenF4.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
59-
60-
GenL0.RECIPE.HOOKS.PREBUILD.1.PATTERN=
61-
GenL0.RECIPE.HOOKS.PREBUILD.2.PATTERN=
62-
GenL0.RECIPE.HOOKS.PREBUILD.3.PATTERN=
63-
GenL0.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
64-
65-
ESC_board.RECIPE.HOOKS.PREBUILD.1.PATTERN=
66-
ESC_board.RECIPE.HOOKS.PREBUILD.2.PATTERN=
67-
ESC_board.RECIPE.HOOKS.PREBUILD.3.PATTERN=
68-
ESC_board.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
69-
70-
LoRa.RECIPE.HOOKS.PREBUILD.1.PATTERN=
71-
LoRa.RECIPE.HOOKS.PREBUILD.2.PATTERN=
72-
LoRa.RECIPE.HOOKS.PREBUILD.3.PATTERN=
73-
LoRa.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
74-
75-
Genericflight.RECIPE.HOOKS.PREBUILD.1.PATTERN=
76-
Genericflight.RECIPE.HOOKS.PREBUILD.2.PATTERN=
77-
Genericflight.RECIPE.HOOKS.PREBUILD.3.PATTERN=
78-
Genericflight.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
79-
80-
3dprinter.RECIPE.HOOKS.PREBUILD.1.PATTERN=
81-
3dprinter.RECIPE.HOOKS.PREBUILD.2.PATTERN=
82-
3dprinter.RECIPE.HOOKS.PREBUILD.3.PATTERN=
83-
3dprinter.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb
84-
85-
Midatronics.RECIPE.HOOKS.PREBUILD.1.PATTERN=
86-
Midatronics.RECIPE.HOOKS.PREBUILD.2.PATTERN=
87-
Midatronics.RECIPE.HOOKS.PREBUILD.3.PATTERN=
88-
Midatronics.COMPILER.EXTRA_FLAGS=-mcpu={build.mcu} {build.flags.fp} -mthumb

io.sloeber.core/src/io/sloeber/core/managers/InternalPackageManager.java

+60-6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.io.IOException;
1818
import java.io.InputStream;
1919
import java.net.URL;
20+
import java.nio.charset.Charset;
2021
import java.util.ArrayList;
2122
import java.util.Arrays;
2223
import java.util.HashMap;
@@ -32,6 +33,7 @@
3233
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
3334
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
3435
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
36+
import org.apache.commons.io.FileUtils;
3537
import org.apache.commons.lang.SystemUtils;
3638
import org.eclipse.core.runtime.IPath;
3739
import org.eclipse.core.runtime.IProgressMonitor;
@@ -49,6 +51,7 @@
4951
import io.sloeber.core.common.ConfigurationPreferences;
5052
import io.sloeber.core.tools.FileModifiers;
5153
import io.sloeber.core.tools.MyMultiStatus;
54+
import io.sloeber.core.tools.Version;
5255

5356
public class InternalPackageManager extends PackageManager {
5457

@@ -148,14 +151,65 @@ static public IStatus downloadAndInstall(ArduinoPlatform platform, boolean force
148151
}
149152
}
150153

151-
// always replace -DARDUINO_BOARD="{build.board}" with
152-
// -DARDUINO_BOARD="\"{build.board}\""
153-
if (platform.getPlatformFile().exists()) {
154-
FileModifiers.replaceInFile(platform.getPlatformFile(), false, "-DARDUINO_BOARD=\"{build.board}\"", //$NON-NLS-1$
155-
"-DARDUINO_BOARD=\"\\\"{build.board}\\\"\""); //$NON-NLS-1$
156-
}
154+
applyKnownWorkArounds( platform);
157155
return mstatus;
158156

157+
}
158+
159+
@SuppressWarnings("nls")
160+
static private void applyKnownWorkArounds(ArduinoPlatform platform) {
161+
162+
File platformTXTFile = platform.getPlatformFile();
163+
if (platformTXTFile.exists()) {
164+
try {
165+
String platformTXT = FileUtils.readFileToString(platformTXTFile, Charset.defaultCharset());
166+
platformTXT = platformTXT.replace("-DARDUINO_BOARD=\"{build.board}\"",
167+
"-DARDUINO_BOARD=\"\\\"{build.board}\\\"\"");
168+
//workaround for infineon arm v1.4.0 overwriting the default to a wrong value
169+
platformTXT = platformTXT.replaceAll("build\\.core\\.path.*","");
170+
171+
172+
FileUtils.write(platformTXTFile, platformTXT, Charset.defaultCharset());
173+
} catch (IOException e) {
174+
Common.log(new Status(IStatus.WARNING, Activator.getId(),
175+
"Failed to apply work arounds to " + platformTXTFile.toString(), e));
176+
}
177+
}
178+
/*
179+
* for STM32 V1.8 and later #include "SrcWrapper.h" to Arduino.h
180+
* remove the prebuild actions
181+
* remove the build_opt
182+
* https://github.com/Sloeber/arduino-eclipse-plugin/issues/1143
183+
*/
184+
if (Version.compare("1.8.0",platform.getVersion())!=1){
185+
if ("stm32".equals(platform.getArchitecture())){
186+
if ("STM32".equals(platform.getPackage().getName())){
187+
if (Version.compare("1.8.0", platform.getVersion()) == 0) {
188+
File arduino_h = platform.getInstallPath().append("cores").append("arduino").append("Arduino.h")
189+
.toFile();
190+
if (arduino_h.exists()) {
191+
FileModifiers.replaceInFile(arduino_h, false, "#include \"pins_arduino.h\"",
192+
"#include \"pins_arduino.h\"\n#include \"SrcWrapper.h\"");
193+
}
194+
}
195+
if (platformTXTFile.exists()) {
196+
try {
197+
String platformTXT = FileUtils.readFileToString(platformTXTFile, Charset.defaultCharset());
198+
platformTXT = platformTXT.replace("\"@{build.opt.path}\"","");
199+
platformTXT = platformTXT.replaceAll("recipe\\.hooks\\.prebuild\\..*","");
200+
201+
FileUtils.write(platformTXTFile, platformTXT, Charset.defaultCharset());
202+
} catch (IOException e) {
203+
Common.log(new Status(IStatus.WARNING, Activator.getId(),
204+
"Failed to apply work arounds to " + platformTXTFile.toString(), e));
205+
}
206+
}
207+
}
208+
}
209+
}
210+
211+
212+
159213
}
160214

161215
static public List<PackageIndex> getPackageIndices() {

0 commit comments

Comments
 (0)