mibuild/xilinx: export special_overrides dictionary
[litex.git] / mibuild / tools.py
1 import os, struct
2 from distutils.version import StrictVersion
3
4 def mkdir_noerror(d):
5 try:
6 os.mkdir(d)
7 except OSError:
8 pass
9
10 def language_by_filename(name):
11 extension = name.rsplit(".")[-1]
12 if extension in ["v", "vh", "vo"]:
13 return "verilog"
14 if extension in ["vhd", "vhdl", "vho"]:
15 return "vhdl"
16 return None
17
18 def write_to_file(filename, contents, force_unix=False):
19 newline = None
20 if force_unix:
21 newline = "\n"
22 f = open(filename, "w", newline=newline)
23 f.write(contents)
24 f.close()
25
26 def arch_bits():
27 return struct.calcsize("P")*8
28
29 def versions(path):
30 for n in os.listdir(path):
31 full = os.path.join(path, n)
32 if not os.path.isdir(full):
33 continue
34 try:
35 yield StrictVersion(n)
36 except ValueError:
37 continue