projects/generate.vbs
author rubidium
Thu, 18 Dec 2008 12:23:08 +0000
changeset 10436 8d3a9fbe8f19
parent 9051 d9469b3f0e05
permissions -rwxr-xr-x
(svn r14689) -Change: make configure die on commonly made user mistakes, like not having SDL development files or zlib headers installed; you can still compile a dedicated server or a binary without zlib, but you have to explicitly force it.
8545
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
     1
Option Explicit
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
     2
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
     3
Dim FSO
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
     4
Set FSO = CreateObject("Scripting.FileSystemObject")
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
     5
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
     6
' openttd_vs90.sln    is for MSVC 2008
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
     7
' openttd_vs90.vcproj is for MSVC 2008
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
     8
' langs_vs90.vcproj   is for MSVC 2008
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
     9
' strgen_vs90.vcproj  is for MSVC 2008
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    10
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    11
' openttd_vs80.sln    is for MSVC 2005
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    12
' openttd_vs80.vcproj is for MSVC 2005
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    13
' langs_vs80.vcproj   is for MSVC 2005
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    14
' strgen_vs80.vcproj  is for MSVC 2005
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    15
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    16
Sub safety_check(filename)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    17
	Dim file, line, regexp, list
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    18
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    19
	' Define regexp
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    20
	Set regexp = New RegExp
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    21
	regexp.Pattern = "#|ottdres.rc|win32.cpp|win32_v.cpp"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    22
	regexp.Global = True
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    23
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    24
	' We use a dictionary to check duplicates
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    25
	Set list = CreateObject("Scripting.Dictionary")
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    26
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    27
	Set file = FSO.OpenTextFile(filename, 1, 0, 0)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    28
	While Not file.AtEndOfStream
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    29
		line = Replace(file.ReadLine, Chr(9), "") ' Remove tabs
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    30
		If Len(line) > 0 And Not regexp.Test(line) Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    31
			line = FSO.GetFileName(line)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    32
			if list.Exists(line) Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    33
				WScript.Echo " !! ERROR !!" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    34
				& vbCrLf & "" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    35
				& vbCrLf & "The filename '" & line & "' is already used in this project." _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    36
				& vbCrLf & "Because MSVC uses one single directory for all object files, it" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    37
				& vbCrLf & "cannot handle filenames with the same name inside the same project." _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    38
				& vbCrLf & "Please rename either one of the file and try generating again." _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    39
				& vbCrLf & "" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    40
				& vbCrLf & " !! ERROR !!"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    41
				WScript.Quit(1)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    42
			End If
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    43
			list.Add line, line
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    44
		End If
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    45
	Wend
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    46
	file.Close
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    47
End Sub
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
    48
8978
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    49
Sub get_files(srcdir, dir, list)
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    50
	Dim file, filename
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    51
	Dim rekeep, reskip
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    52
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    53
	' pattern for files to keep
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    54
	Set rekeep = New RegExp
9051
d9469b3f0e05 (svn r12881) -Fix (r12770): the check for missing header files could find more files than needed
glx
parents: 8978
diff changeset
    55
	rekeep.Pattern = "\.h(pp)?$"
8978
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    56
	rekeep.Global = True
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    57
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    58
	' pattern for files to exclude
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    59
	Set reskip = New RegExp
9051
d9469b3f0e05 (svn r12881) -Fix (r12770): the check for missing header files could find more files than needed
glx
parents: 8978
diff changeset
    60
	reskip.Pattern = "\.svn"
8978
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    61
	reskip.Global = True
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    62
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    63
	For Each file in dir.Files
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    64
		filename = Replace(file.path, srcdir, "") ' Remove */src/
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    65
		filename = Replace(filename, "\", "/") ' Replace separators
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    66
		If rekeep.Test(filename) And Not reskip.Test(filename) Then
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    67
			list.Add filename, filename
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    68
		End If
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    69
	Next
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    70
End Sub
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    71
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    72
Sub get_dir_files(srcdir, dir, list)
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    73
	Dim folder
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    74
	' Get files
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    75
	get_files srcdir, dir, list
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    76
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    77
	' Recurse in subfolders
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    78
	For Each folder in dir.SubFolders
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    79
		get_dir_files srcdir, folder, list
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    80
	Next
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    81
End Sub
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    82
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    83
Sub headers_check(filename, dir)
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    84
	Dim source_list_headers, src_dir_headers, regexp, line, file, str
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    85
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    86
	' Define regexp for source.list parsing
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    87
	Set regexp = New RegExp
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    88
	regexp.Pattern = "\.h"
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    89
	regexp.Global = True
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    90
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    91
	' Parse source.list and store headers in a dictionary
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    92
	Set source_list_headers = CreateObject("Scripting.Dictionary")
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    93
	Set file = FSO.OpenTextFile(filename, 1, 0, 0)
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    94
	While Not file.AtEndOfStream
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    95
		line = Replace(file.ReadLine, Chr(9), "") ' Remove tabs
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    96
		If Len(line) > 0 And regexp.Test(line) And line <> "../objs/langs/table/strings.h" Then
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    97
			source_list_headers.Add line, line
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    98
		End If
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
    99
	Wend
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   100
	file.Close()
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   101
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   102
	' Get header files in /src/
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   103
	Set src_dir_headers = CreateObject("Scripting.Dictionary")
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   104
	get_dir_files dir, FSO.GetFolder(dir), src_dir_headers
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   105
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   106
	' Finding files in source.list but not in /src/
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   107
	For Each line In source_list_headers
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   108
		If Not src_dir_headers.Exists(line) Then
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   109
			str = str & "< " & line & vbCrLf
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   110
		End If
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   111
	Next
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   112
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   113
	' Finding files in /src/ but not in source.list
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   114
	For Each line In src_dir_headers
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   115
		If Not source_list_headers.Exists(line) Then
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   116
			str = str & "> " & line & vbCrLf
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   117
		End If
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   118
	Next
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   119
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   120
	' Display the missing files if any
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   121
	If str <> "" Then
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   122
		str = "The following headers are missing in source.list and not in /src/ or vice versa." _
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   123
		& vbCrLf & str
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   124
		WScript.Echo str
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   125
	End If
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   126
End Sub
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   127
8545
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   128
Function load_main_data(filename)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   129
	Dim res, file, line, deep, skip, first_time
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   130
	res = ""
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   131
	' Read the source.list and process it
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   132
	Set file = FSO.OpenTextFile(filename, 1, 0, 0)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   133
	While Not file.AtEndOfStream
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   134
		line = Replace(file.ReadLine, Chr(9), "") ' Remove tabs
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   135
		If Len(line) > 0 Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   136
			Select Case Split(line, " ")(0)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   137
				Case "#end"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   138
					If deep = skip Then skip = skip - 1
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   139
					deep = deep - 1
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   140
				Case "#else"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   141
					If deep = skip Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   142
						skip = skip - 1
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   143
					ElseIf deep - 1 = skip Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   144
						skip = skip + 1
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   145
					End If
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   146
				Case "#if"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   147
					line = Replace(line, "#if ", "")
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   148
					If deep = skip And ( _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   149
						line = "SDL" Or _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   150
						line = "PNG" Or _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   151
						line = "WIN32" Or _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   152
						line = "MSVC" Or _
8643
dccd6143c48d (svn r12282) -Fix (r12123): generate.vbs should not skip files in NO_THREADS section of source.list
glx
parents: 8545
diff changeset
   153
						line = "DIRECTMUSIC" Or _
8934
f46812d21fe6 (svn r12706) -Merge: the thread rewrite from NoAI. The rewrite makes the threading we have better extendable.
rubidium
parents: 8643
diff changeset
   154
						line = "HAVE_THREAD" _
8545
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   155
					) Then skip = skip + 1
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   156
					deep = deep + 1
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   157
				Case "#"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   158
					if deep = skip Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   159
						line = Replace(line, "# ", "")
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   160
						if first_time <> 0 Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   161
							res = res & "		</Filter>" & vbCrLf
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   162
						Else
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   163
							first_time = 1
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   164
						End If
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   165
						res = res & _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   166
						"		<Filter" & vbCrLf & _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   167
						"			Name=" & Chr(34) & line & Chr(34) & vbCrLf & _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   168
						"			>" & vbCrLf
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   169
					End If
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   170
				Case Else
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   171
					If deep = skip Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   172
						line = Replace(line, "/" ,"\")
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   173
						res = res & _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   174
						"			<File" & vbCrLf & _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   175
						"				RelativePath=" & Chr(34) & ".\..\src\" & line & Chr(34) & vbCrLf & _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   176
						"				>" & vbCrLf & _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   177
						"			</File>" & vbCrLf
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   178
					End If
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   179
			End Select
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   180
		End If
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   181
	Wend
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   182
	res = res & "		</Filter>"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   183
	file.Close()
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   184
	load_main_data = res
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   185
End Function
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   186
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   187
Function load_lang_data(dir)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   188
	Dim res, folder, file
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   189
	res = ""
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   190
	Set folder = FSO.GetFolder(dir)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   191
	For Each file In folder.Files
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   192
		file = FSO.GetFileName(file)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   193
		If FSO.GetExtensionName(file) = "txt" Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   194
			file = Left(file, Len(file) - 4)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   195
			res = res _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   196
			& vbCrLf & "		<File" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   197
			& vbCrLf & "			RelativePath=" & Chr(34) & "..\src\lang\" & file & ".txt" & Chr(34) _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   198
			& vbCrLf & "			>" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   199
			& vbCrLf & "			<FileConfiguration" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   200
			& vbCrLf & "				Name=" & Chr(34) & "Debug|Win32" & Chr(34) _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   201
			& vbCrLf & "				>" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   202
			& vbCrLf & "				<Tool" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   203
			& vbCrLf & "					Name=" & Chr(34) & "VCCustomBuildTool" & Chr(34) _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   204
			& vbCrLf & "					Description=" & Chr(34) & "Generating " & file & " language file" & Chr(34) _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
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) _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   206
			& vbCrLf & "					AdditionalDependencies=" & Chr(34) & Chr(34) _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   207
			& vbCrLf & "					Outputs=" & Chr(34) & "..\bin\lang\" & file & ".lng" & Chr(34) _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   208
			& vbCrLf & "				/>" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   209
			& vbCrLf & "			</FileConfiguration>" _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   210
			& vbCrLf & "		</File>"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   211
		End If
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   212
	Next
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   213
	load_lang_data = res
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   214
End Function
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   215
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   216
Sub generate(data, dest)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   217
	Dim srcfile, destfile, line
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   218
	WScript.Echo "Generating " & FSO.GetFileName(dest) & "..."
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   219
	Set srcfile = FSO.OpenTextFile(dest & ".in", 1, 0, 0)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   220
	Set destfile = FSO.CreateTextFile(dest, -1, 0)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   221
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   222
	' Everything above the !!FILES!! marker
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   223
	line = srcfile.ReadLine()
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   224
	While line <> "!!FILES!!"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   225
		If len(line) > 0 Then destfile.WriteLine(line)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   226
		line = srcfile.ReadLine()
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   227
	Wend
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   228
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   229
	' Our generated content
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   230
	destfile.WriteLine(data)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   231
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   232
	' Everything below the !!FILES!! marker
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   233
	While Not srcfile.AtEndOfStream
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   234
		line = srcfile.ReadLine()
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   235
		If len(line) > 0 Then destfile.WriteLine(line)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   236
	Wend
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   237
	srcfile.Close()
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   238
	destfile.Close()
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   239
End Sub
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   240
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   241
Dim ROOT_DIR
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   242
ROOT_DIR = FSO.GetFolder("..").Path
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   243
If Not FSO.FileExists(ROOT_DIR & "/source.list") Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   244
	ROOT_DIR = FSO.GetFolder(".").Path
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   245
End If
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   246
If Not FSO.FileExists(ROOT_DIR & "/source.list") Then
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   247
	WScript.Echo "Can't find source.list, needed in order to make this run." _
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   248
	& vbCrLf & "Please go to either the project dir, or the root dir of a clean SVN checkout."
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   249
	WScript.Quit(1)
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   250
End If
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   251
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   252
safety_check ROOT_DIR & "/source.list"
8978
fbf60a08a419 (svn r12770) -Add: check for missing (forgotten) header files in the generate.vbs script.
glx
parents: 8934
diff changeset
   253
headers_check ROOT_DIR & "/source.list", ROOT_DIR & "\src\" ' Backslashes needed for DoFiles
8545
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   254
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   255
Dim openttd
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   256
openttd = load_main_data(ROOT_DIR &"/source.list")
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   257
generate openttd, ROOT_DIR & "/projects/openttd_vs80.vcproj"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   258
generate openttd, ROOT_DIR & "/projects/openttd_vs90.vcproj"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   259
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   260
Dim lang
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   261
lang = load_lang_data(ROOT_DIR & "/src/lang")
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   262
generate lang, ROOT_DIR & "/projects/langs_vs80.vcproj"
a59b2f748e91 (svn r12123) -Add: generate.vbs script to allow project files generation for users unable to run generate bash script
glx
parents:
diff changeset
   263
generate lang, ROOT_DIR & "/projects/langs_vs90.vcproj"