5 from collections
import OrderedDict
8 current_path
= os
.path
.dirname(os
.path
.realpath(__file__
))
10 # name, (url, recursive clone, develop)
13 ("migen", ("https://github.com/m-labs/", True, True)),
16 ("litex", ("https://github.com/enjoy-digital/", True, True)),
18 # LiteX cores ecosystem
19 ("liteeth", ("https://github.com/enjoy-digital/", False, True)),
20 ("litedram", ("https://github.com/enjoy-digital/", False, True)),
21 ("litepcie", ("https://github.com/enjoy-digital/", False, True)),
22 ("litesata", ("https://github.com/enjoy-digital/", False, True)),
23 ("litesdcard", ("https://github.com/enjoy-digital/", False, True)),
24 ("liteiclink", ("https://github.com/enjoy-digital/", False, True)),
25 ("litevideo", ("https://github.com/enjoy-digital/", False, True)),
26 ("litescope", ("https://github.com/enjoy-digital/", False, True)),
28 # LiteX boards support
29 ("litex-boards", ("https://github.com/litex-hub/", False, True)),
31 repos
= OrderedDict(repos
)
34 print("Available commands:")
36 print("- install (add --user to install to user directory)")
40 if "init" in sys
.argv
[1:]:
41 for name
in repos
.keys():
42 url
, need_recursive
, need_develop
= repos
[name
]
43 # clone repo (recursive if needed)
44 print("[cloning " + name
+ "]...")
46 opts
= "--recursive" if need_recursive
else ""
47 os
.system("git clone " + full_url
+ " " + opts
)
49 if "install" in sys
.argv
[1:]:
50 for name
in repos
.keys():
51 url
, need_recursive
, need_develop
= repos
[name
]
53 print("[installing " + name
+ "]...")
55 os
.chdir(os
.path
.join(current_path
, name
))
56 if "--user" in sys
.argv
[1:]:
57 os
.system("python3 setup.py develop --user")
59 os
.system("python3 setup.py develop")
61 if "update" in sys
.argv
[1:]:
62 for name
in repos
.keys():
64 print("[updating " + name
+ "]...")
65 os
.chdir(os
.path
.join(current_path
, name
))