1 #! /usr/bin/env python3
11 for file in glob.iglob("src/libsodium/**/*.c", recursive=True):
12 file = file.replace("/", "\\")
13 tlv1 = tlv1 + " <ClCompile Include=\"{}\" />\r\n".format(file)
16 for file in glob.iglob("src/libsodium/**/*.h", recursive=True):
17 file = file.replace("/", "\\")
18 tlv2 = tlv2 + " <ClInclude Include=\"{}\" />\r\n".format(file)
21 for file in glob.iglob("src/libsodium/**/*.c", recursive=True):
22 file = file.replace("/", "\\")
23 tlf1 = tlf1 + " <ClCompile Include=\"{}\">\r\n".format(file)
24 tlf1 = tlf1 + " <Filter>Source Files</Filter>\r\n"
25 tlf1 = tlf1 + " </ClCompile>\r\n"
28 for file in glob.iglob("src/libsodium/**/*.h", recursive=True):
29 file = file.replace("/", "\\")
30 tlf2 = tlf2 + " <ClInclude Include=\"{}\">\r\n".format(file)
31 tlf2 = tlf2 + " <Filter>Header Files</Filter>\r\n"
32 tlf2 = tlf2 + " </ClInclude>\r\n"
35 for file in glob.iglob("src/libsodium/**/*.c", recursive=True):
36 file = file.replace("/", "\\")
38 " <ClCompile Include=\"..\\..\\..\\..\\{}\" />\r\n".format(file)
41 for file in glob.iglob("src/libsodium/**/*.h", recursive=True):
42 file = file.replace("/", "\\")
44 " <ClInclude Include=\"..\\..\\..\\..\\{}\" />\r\n".format(file)
47 for file in glob.iglob("src/libsodium/**/*.c", recursive=True):
48 basedir = os.path.dirname(file).replace("src/libsodium/", "")
52 t = os.path.dirname(t)
53 basedir = basedir.replace("/", "\\")
54 file = file.replace("/", "\\")
55 f1 = f1 + " <ClCompile Include=\"..\\..\\..\\..\\{}\">\r\n".format(file)
56 f1 = f1 + " <Filter>{}</Filter>\r\n".format(basedir)
57 f1 = f1 + " </ClCompile>\r\n"
60 for file in glob.iglob("src/libsodium/**/*.h", recursive=True):
61 basedir = os.path.dirname(file).replace("src/libsodium/", "")
65 t = os.path.dirname(t)
66 basedir = basedir.replace("/", "\\")
67 file = file.replace("/", "\\")
68 f2 = f2 + " <ClInclude Include=\"..\\..\\..\\..\\{}\">\r\n".format(file)
69 f2 = f2 + " <Filter>{}</Filter>\r\n".format(basedir)
70 f2 = f2 + " </ClInclude>\r\n"
76 dir = dir.replace("/", "\\")
77 uid = uuid.uuid3(uuid.UUID(bytes=b'LibSodiumMSVCUID'), dir)
78 fd = fd + " <Filter Include=\"{}\">\r\n".format(dir)
80 " <UniqueIdentifier>{{{}}}</UniqueIdentifier>\r\n".format(uid)
81 fd = fd + " </Filter>\r\n"
84 def apply_template(tplfile, outfile, sbox):
86 with open(tplfile, 'rb') as fd:
89 tpl = tpl.replace(str.encode(
90 "{{" + s + "}}", "utf8"), str.encode(str.strip(sbox[s]), "utf8"))
92 with open(outfile, 'wb') as fd:
95 sbox = {"tlv1": tlv1, "tlv2": tlv2, "tlf1": tlf1, "tlf2": tlf2, "v1": v1,
96 "v2": v2, "f1": f1, "f2": f2, "fd": fd}
98 sd = os.path.dirname(os.path.realpath(__file__))
100 apply_template(sd + "/tl_libsodium.vcxproj.filters.tpl",
101 "libsodium.vcxproj.filters", sbox)
103 sbox.update({"platform": "v140"})
104 apply_template(sd + "/tl_libsodium.vcxproj.tpl",
105 "libsodium.vcxproj", sbox)
107 apply_template(sd + "/libsodium.vcxproj.filters.tpl",
108 "builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters", sbox)
109 apply_template(sd + "/libsodium.vcxproj.filters.tpl",
110 "builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters", sbox)
111 apply_template(sd + "/libsodium.vcxproj.filters.tpl",
112 "builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters", sbox)
113 apply_template(sd + "/libsodium.vcxproj.filters.tpl",
114 "builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters", sbox)
115 apply_template(sd + "/libsodium.vcxproj.filters.tpl",
116 "builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters", sbox)
118 sbox.update({"platform": "v141"})
119 apply_template(sd + "/libsodium.vcxproj.tpl",
120 "builds/msvc/vs2017/libsodium/libsodium.vcxproj", sbox)
122 sbox.update({"platform": "v140"})
123 apply_template(sd + "/libsodium.vcxproj.tpl",
124 "builds/msvc/vs2015/libsodium/libsodium.vcxproj", sbox)
126 sbox.update({"platform": "v120"})
127 apply_template(sd + "/libsodium.vcxproj.tpl",
128 "builds/msvc/vs2013/libsodium/libsodium.vcxproj", sbox)
130 sbox.update({"platform": "v110"})
131 apply_template(sd + "/libsodium.vcxproj.tpl",
132 "builds/msvc/vs2012/libsodium/libsodium.vcxproj", sbox)
134 sbox.update({"platform": "v100"})
135 apply_template(sd + "/libsodium.vcxproj.tpl",
136 "builds/msvc/vs2010/libsodium/libsodium.vcxproj", sbox)