projects/generate.vbs
author truebrain
Mon, 16 Jun 2008 14:43:19 +0000
branchnoai
changeset 10978 13fd0364b2c6
parent 10355 ee4b5f7a5bf2
permissions -rwxr-xr-x
(svn r13532) [NoAI] -Fix: in MultiPlayer SignID wasn't set correctly, causing weird effects. Code is now more unified, which should avoid simular effects in the future (tnx to glx for initial patch)
9732
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
     1
Option Explicit
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
     2
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
     3
Dim FSO
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
     4
Set FSO = CreateObject("Scripting.FileSystemObject")
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
     5
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
     6
' openttd_vs90.sln    is for MSVC 2008
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
     7
' openttd_vs90.vcproj is for MSVC 2008
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
     8
' langs_vs90.vcproj   is for MSVC 2008
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
     9
' strgen_vs90.vcproj  is for MSVC 2008
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    10
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    11
' openttd_vs80.sln    is for MSVC 2005
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    12
' openttd_vs80.vcproj is for MSVC 2005
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    13
' langs_vs80.vcproj   is for MSVC 2005
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    14
' strgen_vs80.vcproj  is for MSVC 2005
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    15
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    16
Sub safety_check(filename)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    17
	Dim file, line, regexp, list
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    18
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    19
	' Define regexp
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    20
	Set regexp = New RegExp
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    21
	regexp.Pattern = "#|ottdres.rc|win32.cpp|win32_v.cpp"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    22
	regexp.Global = True
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    23
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    24
	' We use a dictionary to check duplicates
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    25
	Set list = CreateObject("Scripting.Dictionary")
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    26
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    27
	Set file = FSO.OpenTextFile(filename, 1, 0, 0)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    28
	While Not file.AtEndOfStream
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    29
		line = Replace(file.ReadLine, Chr(9), "") ' Remove tabs
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    30
		If Len(line) > 0 And Not regexp.Test(line) Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    31
			line = FSO.GetFileName(line)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    32
			if list.Exists(line) Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    33
				WScript.Echo " !! ERROR !!" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    34
				& vbCrLf & "" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    35
				& vbCrLf & "The filename '" & line & "' is already used in this project." _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    36
				& vbCrLf & "Because MSVC uses one single directory for all object files, it" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    37
				& vbCrLf & "cannot handle filenames with the same name inside the same project." _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    38
				& vbCrLf & "Please rename either one of the file and try generating again." _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    39
				& vbCrLf & "" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    40
				& vbCrLf & " !! ERROR !!"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    41
				WScript.Quit(1)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    42
			End If
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    43
			list.Add line, line
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    44
		End If
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    45
	Wend
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    46
	file.Close
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    47
End Sub
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
    48
10249
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    49
Sub get_files(srcdir, dir, list)
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    50
	Dim file, filename
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    51
	Dim rekeep, reskip
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    52
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    53
	' pattern for files to keep
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    54
	Set rekeep = New RegExp
10355
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 10249
diff changeset
    55
	rekeep.Pattern = "\.h(pp)?$"
10249
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    56
	rekeep.Global = True
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    57
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    58
	' pattern for files to exclude
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    59
	Set reskip = New RegExp
10355
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 10249
diff changeset
    60
	reskip.Pattern = "\.svn"
10249
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    61
	reskip.Global = True
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    62
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    63
	For Each file in dir.Files
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    64
		filename = Replace(file.path, srcdir, "") ' Remove */src/
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    65
		filename = Replace(filename, "\", "/") ' Replace separators
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    66
		If rekeep.Test(filename) And Not reskip.Test(filename) Then
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    67
			list.Add filename, filename
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    68
		End If
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    69
	Next
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    70
End Sub
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    71
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    72
Sub get_dir_files(srcdir, dir, list)
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    73
	Dim folder
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    74
	' Get files
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    75
	get_files srcdir, dir, list
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    76
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    77
	' Recurse in subfolders
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    78
	For Each folder in dir.SubFolders
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    79
		get_dir_files srcdir, folder, list
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    80
	Next
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    81
End Sub
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    82
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    83
Sub headers_check(filename, dir)
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    84
	Dim source_list_headers, src_dir_headers, regexp, line, file, str
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    85
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    86
	' Define regexp for source.list parsing
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    87
	Set regexp = New RegExp
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    88
	regexp.Pattern = "\.h"
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    89
	regexp.Global = True
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    90
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    91
	' Parse source.list and store headers in a dictionary
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    92
	Set source_list_headers = CreateObject("Scripting.Dictionary")
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    93
	Set file = FSO.OpenTextFile(filename, 1, 0, 0)
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    94
	While Not file.AtEndOfStream
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    95
		line = Replace(file.ReadLine, Chr(9), "") ' Remove tabs
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    96
		If Len(line) > 0 And regexp.Test(line) And line <> "../objs/langs/table/strings.h" Then
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    97
			source_list_headers.Add line, line
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    98
		End If
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
    99
	Wend
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   100
	file.Close()
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   101
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   102
	' Get header files in /src/
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   103
	Set src_dir_headers = CreateObject("Scripting.Dictionary")
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   104
	get_dir_files dir, FSO.GetFolder(dir), src_dir_headers
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   105
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   106
	' Finding files in source.list but not in /src/
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   107
	For Each line In source_list_headers
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   108
		If Not src_dir_headers.Exists(line) Then
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   109
			str = str & "< " & line & vbCrLf
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   110
		End If
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   111
	Next
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   112
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   113
	' Finding files in /src/ but not in source.list
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   114
	For Each line In src_dir_headers
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   115
		If Not source_list_headers.Exists(line) Then
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   116
			str = str & "> " & line & vbCrLf
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   117
		End If
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   118
	Next
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   119
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   120
	' Display the missing files if any
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   121
	If str <> "" Then
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   122
		str = "The following headers are missing in source.list and not in /src/ or vice versa." _
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   123
		& vbCrLf & str
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   124
		WScript.Echo str
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   125
	End If
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   126
End Sub
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   127
9732
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   128
Function load_main_data(filename)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   129
	Dim res, file, line, deep, skip, first_time
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   130
	res = ""
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   131
	' Read the source.list and process it
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   132
	Set file = FSO.OpenTextFile(filename, 1, 0, 0)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   133
	While Not file.AtEndOfStream
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   134
		line = Replace(file.ReadLine, Chr(9), "") ' Remove tabs
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   135
		If Len(line) > 0 Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   136
			Select Case Split(line, " ")(0)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   137
				Case "#end"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   138
					If deep = skip Then skip = skip - 1
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   139
					deep = deep - 1
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   140
				Case "#else"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   141
					If deep = skip Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   142
						skip = skip - 1
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   143
					ElseIf deep - 1 = skip Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   144
						skip = skip + 1
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   145
					End If
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   146
				Case "#if"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   147
					line = Replace(line, "#if ", "")
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   148
					If deep = skip And ( _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   149
						line = "SDL" Or _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   150
						line = "PNG" Or _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   151
						line = "WIN32" Or _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   152
						line = "MSVC" Or _
9800
ab08ca2a2018 (svn r12306) [NoAI] -Sync with trunk r12209:12304
glx
parents: 9732
diff changeset
   153
						line = "DIRECTMUSIC" Or _
9859
81621c6ba0e9 (svn r12538) [NoAI] -Codechange: introducing fiber.hpp, a class to have fibers in your application via either Windows Fibers, or via thread.h
truebrain
parents: 9800
diff changeset
   154
						line = "HAVE_THREAD" _
9732
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   155
					) Then skip = skip + 1
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   156
					deep = deep + 1
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   157
				Case "#"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   158
					if deep = skip Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   159
						line = Replace(line, "# ", "")
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   160
						if first_time <> 0 Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   161
							res = res & "		</Filter>" & vbCrLf
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   162
						Else
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   163
							first_time = 1
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   164
						End If
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   165
						res = res & _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   166
						"		<Filter" & vbCrLf & _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   167
						"			Name=" & Chr(34) & line & Chr(34) & vbCrLf & _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   168
						"			>" & vbCrLf
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   169
					End If
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   170
				Case Else
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   171
					If deep = skip Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   172
						line = Replace(line, "/" ,"\")
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   173
						res = res & _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   174
						"			<File" & vbCrLf & _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   175
						"				RelativePath=" & Chr(34) & ".\..\src\" & line & Chr(34) & vbCrLf & _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   176
						"				>" & vbCrLf & _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   177
						"			</File>" & vbCrLf
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   178
					End If
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   179
			End Select
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   180
		End If
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   181
	Wend
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   182
	res = res & "		</Filter>"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   183
	file.Close()
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   184
	load_main_data = res
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   185
End Function
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   186
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   187
Function load_lang_data(dir)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   188
	Dim res, folder, file
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   189
	res = ""
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   190
	Set folder = FSO.GetFolder(dir)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   191
	For Each file In folder.Files
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   192
		file = FSO.GetFileName(file)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   193
		If FSO.GetExtensionName(file) = "txt" Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   194
			file = Left(file, Len(file) - 4)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   195
			res = res _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   196
			& vbCrLf & "		<File" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   197
			& vbCrLf & "			RelativePath=" & Chr(34) & "..\src\lang\" & file & ".txt" & Chr(34) _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   198
			& vbCrLf & "			>" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   199
			& vbCrLf & "			<FileConfiguration" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   200
			& vbCrLf & "				Name=" & Chr(34) & "Debug|Win32" & Chr(34) _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   201
			& vbCrLf & "				>" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   202
			& vbCrLf & "				<Tool" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   203
			& vbCrLf & "					Name=" & Chr(34) & "VCCustomBuildTool" & Chr(34) _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   204
			& vbCrLf & "					Description=" & Chr(34) & "Generating " & file & " language file" & Chr(34) _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   205
			& vbCrLf & "					CommandLine=" & Chr(34) & "..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;" & Chr(34) _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   206
			& vbCrLf & "					AdditionalDependencies=" & Chr(34) & Chr(34) _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   207
			& vbCrLf & "					Outputs=" & Chr(34) & "..\bin\lang\" & file & ".lng" & Chr(34) _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   208
			& vbCrLf & "				/>" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   209
			& vbCrLf & "			</FileConfiguration>" _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   210
			& vbCrLf & "		</File>"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   211
		End If
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   212
	Next
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   213
	load_lang_data = res
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   214
End Function
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   215
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   216
Sub generate(data, dest)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   217
	Dim srcfile, destfile, line
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   218
	WScript.Echo "Generating " & FSO.GetFileName(dest) & "..."
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   219
	Set srcfile = FSO.OpenTextFile(dest & ".in", 1, 0, 0)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   220
	Set destfile = FSO.CreateTextFile(dest, -1, 0)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   221
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   222
	' Everything above the !!FILES!! marker
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   223
	line = srcfile.ReadLine()
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   224
	While line <> "!!FILES!!"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   225
		If len(line) > 0 Then destfile.WriteLine(line)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   226
		line = srcfile.ReadLine()
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   227
	Wend
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   228
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   229
	' Our generated content
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   230
	destfile.WriteLine(data)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   231
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   232
	' Everything below the !!FILES!! marker
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   233
	While Not srcfile.AtEndOfStream
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   234
		line = srcfile.ReadLine()
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   235
		If len(line) > 0 Then destfile.WriteLine(line)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   236
	Wend
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   237
	srcfile.Close()
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   238
	destfile.Close()
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   239
End Sub
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   240
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   241
Dim ROOT_DIR
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   242
ROOT_DIR = FSO.GetFolder("..").Path
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   243
If Not FSO.FileExists(ROOT_DIR & "/source.list") Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   244
	ROOT_DIR = FSO.GetFolder(".").Path
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   245
End If
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   246
If Not FSO.FileExists(ROOT_DIR & "/source.list") Then
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   247
	WScript.Echo "Can't find source.list, needed in order to make this run." _
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   248
	& vbCrLf & "Please go to either the project dir, or the root dir of a clean SVN checkout."
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   249
	WScript.Quit(1)
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   250
End If
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   251
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   252
safety_check ROOT_DIR & "/source.list"
10249
58810805030e (svn r12781) [NoAI] -Sync: with trunk r12711:12780.
rubidium
parents: 9859
diff changeset
   253
headers_check ROOT_DIR & "/source.list", ROOT_DIR & "\src\" ' Backslashes needed for DoFiles
9732
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   254
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   255
Dim openttd
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   256
openttd = load_main_data(ROOT_DIR &"/source.list")
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   257
generate openttd, ROOT_DIR & "/projects/openttd_vs80.vcproj"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   258
generate openttd, ROOT_DIR & "/projects/openttd_vs90.vcproj"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   259
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   260
Dim lang
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   261
lang = load_lang_data(ROOT_DIR & "/src/lang")
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   262
generate lang, ROOT_DIR & "/projects/langs_vs80.vcproj"
f8eb3e208514 (svn r12211) [NoAI] -Sync: with trunk r12050:12209
glx
parents:
diff changeset
   263
generate lang, ROOT_DIR & "/projects/langs_vs90.vcproj"