summaryrefslogtreecommitdiff
path: root/bsp/ht32/tools/sdk_dist.py
blob: 01540d7ec62d858f4af9e42a9405099207f470c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import os
import re
import sys
import shutil

cwd_path = os.getcwd()
sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools'))


def bsp_update_kconfig_library(dist_dir):
    # change RTT_ROOT in Kconfig
    if not os.path.isfile(os.path.join(dist_dir, 'Kconfig')):
        return

    with open(os.path.join(dist_dir, 'Kconfig'), 'r') as f:
        data = f.readlines()
    with open(os.path.join(dist_dir, 'Kconfig'), 'w') as f:
        for line in data:
            if line.find('source') != -1 and line.find('../libraries') != -1:
                line = line.replace('../libraries', 'libraries')
            f.write(line)


# BSP dist function
def dist_do_building(BSP_ROOT, dist_dir):
    from mkdist import bsp_copy_files
    import rtconfig

    print("=> copy ht32 bsp library")
    library_dir = os.path.join(dist_dir, 'libraries')
    library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries')
    bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE), os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE))

    print("=> copy bsp drivers")
    bsp_copy_files(os.path.join(library_path, 'ht32_drivers'), os.path.join(library_dir, 'ht32_drivers'))
    shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig'))
    bsp_update_kconfig_library(dist_dir)


def get_source(ic_model, file_path, system_path, base_path):
    source_path = []
    files_list = []
    readafter = 0
    if not os.path.isfile(file_path):
        return

    with open(file_path, 'r') as file:
        # content = file.read()
        for line in file:
            if readafter == 2 and line.find('>') != -1:
                break
            if readafter == 2:
                files_list.append(line.strip())
            if line.find(ic_model) != -1:
                readafter = 1
            if readafter == 1 and line.find('<') != -1:
                readafter = 2
    for line in files_list:
        if line.find('system') != -1:
            source_path.append(os.path.join(system_path, line.strip()))
        else:
            source_path.append(os.path.join(base_path, line.strip()))
    return source_path