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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
Const ForReading = 1, ForWriting = 2, ForAppending =8
Dim line, i, fs, baseName, outFile, depends, errors, shell, topSrcDir, cppSrcDir, cppIncludeDir, cppTestIncludeDir, workDir, objPrefix
Set depends = CreateObject("Scripting.Dictionary")
errors = False
Set fs = CreateObject("Scripting.FileSystemObject")
Set shell = WScript.CreateObject("WScript.Shell")
baseName = WScript.Arguments(0)
topSrcDir = fs.GetAbsolutePathName(WScript.Arguments(1) & "\..")
cppThirdPartyDir = fs.GetAbsolutePathName(WScript.Arguments(1) & "\third-party-packages\")
cppSrcDir = fs.GetAbsolutePathName(WScript.Arguments(1) & "\src\")
cppIncludeDir = fs.GetAbsolutePathName(WScript.Arguments(1) & "\include\")
cppTestIncludeDir = fs.GetAbsolutePathName(WScript.Arguments(1) & "\test\include\")
workDir = fs.GetAbsolutePathName(".")
iceCppIncludeDir = fs.GetAbsolutePathName(WScript.Arguments(1) & "\..\cpp\include\")
objPrefix = ""
If InStr(1, shell.ExpandEnvironmentStrings("%WINRT%"), "yes") Then
baseName = Replace(baseName, "..\..\IceDiscovery\", "IceDiscovery\")
baseName = Replace(baseName, "..\..\IceLocatorDiscovery\", "IceLocatorDiscovery\")
baseName = Replace(baseName, "..\", "")
objPrefix = "$(ARCH)\$(CONFIG)\"
End If
Set outFile = fs.OpenTextFile(".depend.mak", ForAppending, True)
outFile.WriteLine("")
outFile.WriteLine(objPrefix & Replace(baseName, ".cpp", ".obj") & ": \")
outFile.WriteLine(" " & WScript.Arguments(0) & " \")
Set stream = fs.OpenTextFile(Replace(basename, ".cpp", ".d"), ForReading)
Do While Not stream.AtEndOfStream
Do
line = stream.ReadLine()
i = InStr(1, line, "Note: including file:")
If i > 0 Then
i = i + Len("Note: including file:")
line = Mid(line, i)
line = Trim(line)
line = fs.GetAbsolutePathName(line)
If InStr(1, line, cppThirdPartyDir) Then Exit Do
If InStr(1, line, topSrcDir) Then
If InStr(1, line, workDir & "\") > 0 Then
line = Right(line, len(line) - len(workDir) -1)
Elseif InStr(1, line, cppSrcDir) > 0 Then
line = WScript.Arguments(1) & "\src" & Right(line, len(line) - len(cppSrcDir))
Elseif InStr(1, line, cppIncludeDir) > 0 Then
line = "$(includedir)" & Right(line, len(line) - len(cppIncludeDir))
Elseif InStr(1, line, iceCppIncludeDir) > 0 Then
line = "$(ice_cpp_dir)\include" & Right(line, len(line) - len(iceCppIncludeDir))
Elseif InStr(1, line, cppTestIncludeDir) > 0 Then
line = "$(top_srcdir)\test\include" & Right(line, len(line) - len(cppTestIncludeDir))
End If
line = " """ & line & """ \"
If Not depends.Exists(line) Then
depends.Add line, ""
outFile.WriteLine(line)
End If
End If
End If
Loop While False
Loop
stream.Close()
If errors Then
WScript.Quit 1
End If
|