3
3
from pathlib import Path
4
4
from multiprocessing import Pool
5
5
6
+ # Mandatory Dependencies that is always fetched
6
7
# path, url, commit (Alphabet sorted by path)
7
- deps_list = {
8
+ deps_mandatory = {
9
+ 'lib/FreeRTOS-Kernel' : ['2a604f4a2818b8354b5e1a39e388eb5e16cfbc1f' , 'https://github.com/FreeRTOS/FreeRTOS-Kernel.git' ],
10
+ 'lib/lwip' : ['159e31b689577dbf69cf0683bbaffbd71fa5ee10' , 'https://github.com/lwip-tcpip/lwip.git' ],
11
+ 'tools/uf2' : ['19615407727073e36d81bf239c52108ba92e7660' , 'https://github.com/microsoft/uf2.git' ],
12
+ }
13
+
14
+ # Optional Dependencies per MCU
15
+ # path, url, commit (Alphabet sorted by path)
16
+ deps_optional = {
8
17
'hw/mcu/allwinner' : ['8e5e89e8e132c0fd90e72d5422e5d3d68232b756' , 'https://github.com/hathach/allwinner_driver.git' ],
9
18
'hw/mcu/bridgetek/ft9xx/ft90x-sdk' : ['91060164afe239fcb394122e8bf9eb24d3194eb1' , 'https://github.com/BRTSG-FOSS/ft90x-sdk.git' ],
10
19
'hw/mcu/broadcom' : ['08370086080759ed54ac1136d62d2ad24c6fa267' , 'https://github.com/adafruit/broadcom-peripherals.git' ],
55
64
'hw/mcu/ti' : ['143ed6cc20a7615d042b03b21e070197d473e6e5' , 'https://github.com/hathach/ti_driver.git' ],
56
65
'hw/mcu/wch/ch32v307' : ['17761f5cf9dbbf2dcf665b7c04934188add20082' , 'https://github.com/openwch/ch32v307.git' ],
57
66
'lib/CMSIS_5' : ['20285262657d1b482d132d20d755c8c330d55c1f' , 'https://github.com/ARM-software/CMSIS_5.git' ],
58
- 'lib/FreeRTOS-Kernel' : ['2a604f4a2818b8354b5e1a39e388eb5e16cfbc1f' , 'https://github.com/FreeRTOS/FreeRTOS-Kernel.git' ],
59
- 'lib/lwip' : ['159e31b689577dbf69cf0683bbaffbd71fa5ee10' , 'https://github.com/lwip-tcpip/lwip.git' ],
60
67
'lib/sct_neopixel' : ['e73e04ca63495672d955f9268e003cffe168fcd8' , 'https://github.com/gsteiert/sct_neopixel.git' ],
61
- 'tools/uf2' : ['19615407727073e36d81bf239c52108ba92e7660' , 'https://github.com/microsoft/uf2.git' ],
62
68
}
63
69
70
+ # combined 2 deps
71
+ deps_all = {** deps_mandatory , ** deps_optional }
72
+
64
73
# TOP is tinyusb root dir
65
74
TOP = Path (__file__ ).parent .parent .resolve ()
66
75
67
76
68
77
def get_a_dep (d ):
69
- if d not in deps_list .keys ():
78
+ if d not in deps_all .keys ():
70
79
print ('{} is not found in dependency list' )
71
80
return 1
72
- commit = deps_list [d ][0 ]
73
- url = deps_list [d ][1 ]
81
+ commit = deps_all [d ][0 ]
82
+ url = deps_all [d ][1 ]
74
83
print ('cloning {} with {}' .format (d , url ))
75
84
76
85
p = Path (TOP / d )
@@ -94,8 +103,11 @@ def get_a_dep(d):
94
103
95
104
96
105
if __name__ == "__main__" :
106
+ if len (sys .argv ) <= 1 :
107
+ sys .exit (1 )
108
+
97
109
status = 0
98
- all_deps = sys .argv [1 :]
110
+ deps = list ( deps_mandatory . keys ()) + sys .argv [1 :]
99
111
with Pool () as pool :
100
- status = sum (pool .map (get_a_dep , all_deps ))
112
+ status = sum (pool .map (get_a_dep , deps ))
101
113
sys .exit (status )
0 commit comments