@@ -264,33 +264,48 @@ def apply_toolchain_options(self, base_cflags: Optional[List[str]] = None) -> To
264264 from SCons .Script import GetOption
265265
266266 cflags = list (base_cflags ) if base_cflags else []
267+ cc_flags : List [str ] = []
268+ arch_flags : List [str ] = []
267269
268270 def option_value (name : str , default : str = "" ) -> str :
269271 value = GetOption (name )
270272 return value or default
271273
272274 cc_prefix = option_value ('cross-compile' , '' )
273275 if cc_prefix :
274- self .env ['CC' ] = cc_prefix + 'gcc'
275- self .env ['AR' ] = cc_prefix + 'ar'
276- self .env ['AS' ] = cc_prefix + 'gcc'
277- self .env ['RANLIB' ] = cc_prefix + 'ranlib'
278- cflags .append ('-ffreestanding' )
276+ commands = {
277+ "CC" : "gcc" ,
278+ "CXX" : "g++" ,
279+ "AS" : "gcc" ,
280+ "AR" : "ar" ,
281+ "LINK" : "gcc" ,
282+ "SIZE" : "size" ,
283+ "OBJDUMP" : "objdump" ,
284+ "OBJCOPY" : "objcopy" ,
285+ "RANLIB" : "ranlib" ,
286+ }
287+ for key , value in commands .items ():
288+ self .env [key ] = cc_prefix + value
289+ cc_flags .append ('-ffreestanding' )
279290
280291 cpu = option_value ('cpu' , '' )
281292 if cpu :
282- cflags .append (f'-mcpu={ cpu } ' )
293+ arch_flags .append (f'-mcpu={ cpu } ' )
283294
284295 fpu = option_value ('fpu' , '' )
285296 if fpu :
286- cflags .append (f'-mfpu={ fpu } ' )
297+ arch_flags .append (f'-mfpu={ fpu } ' )
287298
288299 float_abi = option_value ('float-abi' , '' )
289300 if float_abi :
290- cflags .append (f'-mfloat-abi={ float_abi } ' )
301+ arch_flags .append (f'-mfloat-abi={ float_abi } ' )
291302
292303 if cflags :
293304 self .env .Append (CFLAGS = cflags )
305+ if cc_flags or arch_flags :
306+ self .env .Append (CCFLAGS = cc_flags + arch_flags )
307+ if arch_flags :
308+ self .env .Append (ASFLAGS = arch_flags , LINKFLAGS = arch_flags )
294309
295310 build_program = not cc_prefix
296311 return ToolchainSettings (cc_prefix = cc_prefix , build_program = build_program )
@@ -385,4 +400,5 @@ def prepare(env, workspace_root: Optional[str] = None, project_root: Optional[st
385400 from .toolchain import setup_project
386401
387402 setup_project (env , build .project_root , config_module )
403+ build .apply_toolchain_options ()
388404 return build
0 commit comments