25
25
import json
26
26
from os .path import isfile , isdir , join
27
27
28
- from SCons .Script import DefaultEnvironment
28
+ from platformio .util import get_systype
29
+
30
+ from SCons .Script import COMMAND_LINE_TARGETS , DefaultEnvironment
29
31
30
32
env = DefaultEnvironment ()
31
33
platform = env .PioPlatform ()
40
42
mcu = board_config .get ("build.mcu" , "" )
41
43
mcu_type = mcu [:- 2 ]
42
44
variant = board_config .get (
43
- "build.variant" , board_config .get ("build.arduino.variant" , "generic" ))
45
+ "build.variant" , board_config .get ("build.arduino.variant" , "generic" )
46
+ )
44
47
series = mcu_type [:7 ].upper () + "xx"
45
48
variants_dir = (
46
49
join ("$PROJECT_DIR" , board_config .get ("build.variants_dir" ))
47
50
if board_config .get ("build.variants_dir" , "" )
48
51
else join (FRAMEWORK_DIR , "variants" )
49
52
)
50
53
variant_dir = join (variants_dir , variant )
54
+ inc_variant_dir = variant_dir
55
+ if "windows" not in get_systype ().lower () and not (
56
+ set (["_idedata" , "idedata" ]) & set (COMMAND_LINE_TARGETS ) and " " not in variant_dir
57
+ ):
58
+ inc_variant_dir = variant_dir .replace ("(" , r"\(" ).replace (")" , r"\)" )
59
+
51
60
upload_protocol = env .subst ("$UPLOAD_PROTOCOL" )
52
61
53
62
@@ -140,13 +149,18 @@ def configure_application_offset(mcu, upload_protocol):
140
149
env .Append (CPPDEFINES = ["BL_LEGACY_LEAF" ])
141
150
142
151
if offset != 0 :
143
- env .Append (CPPDEFINES = [("VECT_TAB_OFFSET" , "%s" % hex (offset ))],)
152
+ env .Append (
153
+ CPPDEFINES = [("VECT_TAB_OFFSET" , "%s" % hex (offset ))],
154
+ )
144
155
145
156
# LD_FLASH_OFFSET is mandatory even if there is no offset
146
157
env .Append (LINKFLAGS = ["-Wl,--defsym=LD_FLASH_OFFSET=%s" % hex (offset )])
147
158
148
159
149
- if any (mcu in board_config .get ("build.cpu" ) for mcu in ("cortex-m4" , "cortex-m7" )) and "stm32wl" not in mcu :
160
+ if (
161
+ any (cpu in board_config .get ("build.cpu" ) for cpu in ("cortex-m4" , "cortex-m7" ))
162
+ and "stm32wl" not in mcu
163
+ ):
150
164
env .Append (
151
165
CCFLAGS = ["-mfpu=fpv4-sp-d16" , "-mfloat-abi=hard" ],
152
166
LINKFLAGS = ["-mfpu=fpv4-sp-d16" , "-mfloat-abi=hard" ],
@@ -235,11 +249,7 @@ def get_arduino_board_id(board_config, mcu):
235
249
% board_config .get (
236
250
"build.arduino.variant_h" ,
237
251
"variant_%s.h"
238
- % (
239
- "generic"
240
- if board_id .lower ().startswith ("generic" )
241
- else board_id
242
- ),
252
+ % ("generic" if board_id .lower ().startswith ("generic" ) else board_id ),
243
253
),
244
254
),
245
255
],
@@ -272,12 +282,7 @@ def get_arduino_board_id(board_config, mcu):
272
282
"Core" ,
273
283
"Src" ,
274
284
),
275
- join (
276
- FRAMEWORK_DIR ,
277
- "system" ,
278
- "Middlewares" ,
279
- "OpenAMP"
280
- ),
285
+ join (FRAMEWORK_DIR , "system" , "Middlewares" , "OpenAMP" ),
281
286
join (
282
287
FRAMEWORK_DIR ,
283
288
"system" ,
@@ -296,13 +301,7 @@ def get_arduino_board_id(board_config, mcu):
296
301
"lib" ,
297
302
"include" ,
298
303
),
299
- join (
300
- FRAMEWORK_DIR ,
301
- "system" ,
302
- "Middlewares" ,
303
- "OpenAMP" ,
304
- "virtual_driver"
305
- ),
304
+ join (FRAMEWORK_DIR , "system" , "Middlewares" , "OpenAMP" , "virtual_driver" ),
306
305
join (CMSIS_DIR , "Core" , "Include" ),
307
306
join (
308
307
FRAMEWORK_DIR ,
@@ -341,7 +340,8 @@ def get_arduino_board_id(board_config, mcu):
341
340
"-Wl,--unresolved-symbols=report-all" ,
342
341
"-Wl,--warn-common" ,
343
342
"-Wl,--defsym=LD_MAX_SIZE=%d" % board_config .get ("upload.maximum_size" ),
344
- "-Wl,--defsym=LD_MAX_DATA_SIZE=%d" % board_config .get ("upload.maximum_ram_size" ),
343
+ "-Wl,--defsym=LD_MAX_DATA_SIZE=%d"
344
+ % board_config .get ("upload.maximum_ram_size" ),
345
345
],
346
346
LIBS = [
347
347
get_arm_math_lib (board_config .get ("build.cpu" )),
@@ -369,8 +369,8 @@ def get_arduino_board_id(board_config, mcu):
369
369
LINKFLAGS = [
370
370
(
371
371
"-Wl,--default-script" ,
372
- ' \" %s \" ' % join (
373
- variant_dir ,
372
+ join (
373
+ inc_variant_dir ,
374
374
board_config .get ("build.arduino.ldscript" , "ldscript.ld" ),
375
375
),
376
376
)
@@ -405,15 +405,14 @@ def get_arduino_board_id(board_config, mcu):
405
405
libs = []
406
406
407
407
if "build.variant" in board_config :
408
- env .Append (
409
- CCFLAGS = '"-I%s"' % variant_dir ,
410
- LINKFLAGS = ['"-L%s"' % variant_dir ]
411
- )
408
+ env .Append (CPPPATH = [inc_variant_dir ], LIBPATH = [inc_variant_dir ])
412
409
env .BuildSources (join ("$BUILD_DIR" , "FrameworkArduinoVariant" ), variant_dir )
413
410
414
- libs .append (env .BuildLibrary (
415
- join ("$BUILD_DIR" , "FrameworkArduino" ), join (FRAMEWORK_DIR , "cores" , "arduino" )
416
- ))
411
+ libs .append (
412
+ env .BuildLibrary (
413
+ join ("$BUILD_DIR" , "FrameworkArduino" ), join (FRAMEWORK_DIR , "cores" , "arduino" )
414
+ )
415
+ )
417
416
418
417
env .BuildSources (
419
418
join ("$BUILD_DIR" , "SrcWrapper" ), join (FRAMEWORK_DIR , "libraries" , "SrcWrapper" )
0 commit comments