@@ -41,7 +41,7 @@ def run_cmd(cmd, output_info=True):
4141 return output_str_list , res
4242
4343
44- def build_bsp (bsp , scons_args = '' ,name = 'default' , pre_build_commands = None , post_build_command = None ,build_check_result = None ):
44+ def build_bsp (bsp , scons_args = '' ,name = 'default' , pre_build_commands = None , post_build_command = None ,build_check_result = None , bsp_build_env = None ):
4545 """
4646 build bsp.
4747
@@ -61,6 +61,12 @@ def build_bsp(bsp, scons_args='',name='default', pre_build_commands=None, post_b
6161
6262 """
6363 success = True
64+ # 设置环境变量
65+ if bsp_build_env is not None :
66+ print ("Setting environment variables:" )
67+ for key , value in bsp_build_env .items ():
68+ print (f"{ key } ={ value } " )
69+ os .environ [key ] = value # 设置环境变量
6470 os .chdir (rtt_root )
6571 os .makedirs (f'{ rtt_root } /output/bsp/{ bsp } ' , exist_ok = True )
6672 if os .path .exists (f"{ rtt_root } /bsp/{ bsp } /Kconfig" ):
@@ -73,6 +79,8 @@ def build_bsp(bsp, scons_args='',name='default', pre_build_commands=None, post_b
7379
7480 nproc = multiprocessing .cpu_count ()
7581 if pre_build_commands is not None :
82+ print ("Pre-build commands:" )
83+ print (pre_build_commands )
7684 for command in pre_build_commands :
7785 print (command )
7886 output , returncode = run_cmd (command , output_info = True )
@@ -367,6 +375,7 @@ def check_output(output, check_string):
367375 build_check_result = None
368376 commands = None
369377 check_result = None
378+ bsp_build_env = None
370379 for projects in yml_files_content :
371380 for name , details in projects .items ():
372381 # 如果是bsp_board_info,读取基本的信息
@@ -388,6 +397,8 @@ def check_output(output, check_string):
388397 ci_build_run_flag = details .get ("ci_build_run_flag" )
389398 if details .get ("pre_build" ) is not None :
390399 pre_build_commands = details .get ("pre_build" ).splitlines ()
400+ if details .get ("env" ) is not None :
401+ bsp_build_env = details .get ("env" )
391402 if details .get ("build_cmd" ) is not None :
392403 build_command = details .get ("build_cmd" ).splitlines ()
393404 if details .get ("post_build" ) is not None :
@@ -416,7 +427,7 @@ def check_output(output, check_string):
416427 print (f"::group::\t Compiling yml project: =={ count } ==={ name } =scons_arg={ scons_arg_str } ==" )
417428
418429 # #开始编译bsp
419- res = build_bsp (bsp , scons_arg_str ,name = name ,pre_build_commands = pre_build_commands ,post_build_command = post_build_command ,build_check_result = build_check_result )
430+ res = build_bsp (bsp , scons_arg_str ,name = name ,pre_build_commands = pre_build_commands ,post_build_command = post_build_command ,build_check_result = build_check_result , bsp_build_env = bsp_build_env )
420431
421432 shutil .copyfile (config_bacakup , config_file )
422433 os .remove (config_bacakup )
0 commit comments