2525import json
2626from os .path import isfile , isdir , join
2727
28- from SCons .Script import DefaultEnvironment
28+ from platformio .util import get_systype
29+
30+ from SCons .Script import COMMAND_LINE_TARGETS , DefaultEnvironment
2931
3032env = DefaultEnvironment ()
3133platform = env .PioPlatform ()
4042mcu = board_config .get ("build.mcu" , "" )
4143mcu_type = mcu [:- 2 ]
4244variant = board_config .get (
43- "build.variant" , board_config .get ("build.arduino.variant" , "generic" ))
45+ "build.variant" , board_config .get ("build.arduino.variant" , "generic" )
46+ )
4447series = mcu_type [:7 ].upper () + "xx"
4548variants_dir = (
4649 join ("$PROJECT_DIR" , board_config .get ("build.variants_dir" ))
4750 if board_config .get ("build.variants_dir" , "" )
4851 else join (FRAMEWORK_DIR , "variants" )
4952)
5053variant_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+
5160upload_protocol = env .subst ("$UPLOAD_PROTOCOL" )
5261
5362
@@ -140,13 +149,18 @@ def configure_application_offset(mcu, upload_protocol):
140149 env .Append (CPPDEFINES = ["BL_LEGACY_LEAF" ])
141150
142151 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+ )
144155
145156 # LD_FLASH_OFFSET is mandatory even if there is no offset
146157 env .Append (LINKFLAGS = ["-Wl,--defsym=LD_FLASH_OFFSET=%s" % hex (offset )])
147158
148159
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+ ):
150164 env .Append (
151165 CCFLAGS = ["-mfpu=fpv4-sp-d16" , "-mfloat-abi=hard" ],
152166 LINKFLAGS = ["-mfpu=fpv4-sp-d16" , "-mfloat-abi=hard" ],
@@ -235,11 +249,7 @@ def get_arduino_board_id(board_config, mcu):
235249 % board_config .get (
236250 "build.arduino.variant_h" ,
237251 "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 ),
243253 ),
244254 ),
245255 ],
@@ -272,12 +282,7 @@ def get_arduino_board_id(board_config, mcu):
272282 "Core" ,
273283 "Src" ,
274284 ),
275- join (
276- FRAMEWORK_DIR ,
277- "system" ,
278- "Middlewares" ,
279- "OpenAMP"
280- ),
285+ join (FRAMEWORK_DIR , "system" , "Middlewares" , "OpenAMP" ),
281286 join (
282287 FRAMEWORK_DIR ,
283288 "system" ,
@@ -296,13 +301,7 @@ def get_arduino_board_id(board_config, mcu):
296301 "lib" ,
297302 "include" ,
298303 ),
299- join (
300- FRAMEWORK_DIR ,
301- "system" ,
302- "Middlewares" ,
303- "OpenAMP" ,
304- "virtual_driver"
305- ),
304+ join (FRAMEWORK_DIR , "system" , "Middlewares" , "OpenAMP" , "virtual_driver" ),
306305 join (CMSIS_DIR , "Core" , "Include" ),
307306 join (
308307 FRAMEWORK_DIR ,
@@ -341,7 +340,8 @@ def get_arduino_board_id(board_config, mcu):
341340 "-Wl,--unresolved-symbols=report-all" ,
342341 "-Wl,--warn-common" ,
343342 "-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" ),
345345 ],
346346 LIBS = [
347347 get_arm_math_lib (board_config .get ("build.cpu" )),
@@ -369,8 +369,8 @@ def get_arduino_board_id(board_config, mcu):
369369 LINKFLAGS = [
370370 (
371371 "-Wl,--default-script" ,
372- ' \" %s \" ' % join (
373- variant_dir ,
372+ join (
373+ inc_variant_dir ,
374374 board_config .get ("build.arduino.ldscript" , "ldscript.ld" ),
375375 ),
376376 )
@@ -405,15 +405,14 @@ def get_arduino_board_id(board_config, mcu):
405405libs = []
406406
407407if "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 ])
412409 env .BuildSources (join ("$BUILD_DIR" , "FrameworkArduinoVariant" ), variant_dir )
413410
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+ )
417416
418417env .BuildSources (
419418 join ("$BUILD_DIR" , "SrcWrapper" ), join (FRAMEWORK_DIR , "libraries" , "SrcWrapper" )
0 commit comments