1import os
2import sys
3import shutil
4
5cwd_path = os.getcwd()
6sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools'))
7
8
9def bsp_update_kconfig_library(dist_dir):
10    # change RTT_ROOT in Kconfig
11    if not os.path.isfile(os.path.join(dist_dir, 'Kconfig')):
12        return
13
14    with open(os.path.join(dist_dir, 'Kconfig'), 'r') as f:
15        data = f.readlines()
16    with open(os.path.join(dist_dir, 'Kconfig'), 'w') as f:
17        for line in data:
18            if line.find('source') != -1 and line.find('../libraries') != -1:
19                line = line.replace('../libraries', 'libraries')
20            f.write(line)
21
22
23# BSP dist function
24def dist_do_building(BSP_ROOT, dist_dir):
25    from mkdist import bsp_copy_files
26    import rtconfig
27
28    print("=> copy at32 bsp library")
29    library_dir = os.path.join(dist_dir, 'libraries')
30    library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries')
31    if rtconfig.BSP_LIBRARY_TYPE is not None:
32        bsp_copy_files(
33            os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE),
34            os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE),
35        )
36
37    print("=> copy bsp drivers")
38    bsp_copy_files(os.path.join(library_path, 'CMSIS'), os.path.join(library_dir, 'CMSIS'))
39    bsp_copy_files(os.path.join(library_path, 'rt_drivers'), os.path.join(library_dir, 'rt_drivers'))
40    bsp_copy_files(os.path.join(library_path, 'usbd_library'), os.path.join(library_dir, 'usbd_library'))
41    bsp_copy_files(os.path.join(library_path, 'usbotg_library'), os.path.join(library_dir, 'usbotg_library'))
42    shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig'))
43    bsp_update_kconfig_library(dist_dir)
44