projects/generate
author rubidium
Fri, 23 Nov 2007 16:59:30 +0000
branchnoai
changeset 9722 ebf0ece7d8f6
parent 9628 b5c2449616b5
child 9724 b39bc69bb2f2
permissions -rwxr-xr-x
(svn r11503) [NoAI] -Sync: with trunk r11308:11502.
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
     1
#!/bin/bash
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
     2
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
     3
# This file generates all project files based on sources.list, so everyone who
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
     4
#  can start a bash process, can update the project files.
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
     5
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
     6
ROOT_DIR="`pwd`/.."
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
     7
if ! [ -e "$ROOT_DIR/source.list" ]
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
     8
then
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
     9
	ROOT_DIR="`pwd`"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    10
fi
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    11
if ! [ -e "$ROOT_DIR/source.list" ]
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    12
then
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    13
	echo "Can't find source.list, needed in order to make this run. Please go to either"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    14
	echo " the project dir, or the root dir of a clean SVN checkout."
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    15
	exit 1
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    16
fi
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    17
9722
ebf0ece7d8f6 (svn r11503) [NoAI] -Sync: with trunk r11308:11502.
rubidium
parents: 9628
diff changeset
    18
# openttd_vs90.sln    is for MSVC 2008
ebf0ece7d8f6 (svn r11503) [NoAI] -Sync: with trunk r11308:11502.
rubidium
parents: 9628
diff changeset
    19
# openttd_vs90.vcproj is for MSVC 2008
ebf0ece7d8f6 (svn r11503) [NoAI] -Sync: with trunk r11308:11502.
rubidium
parents: 9628
diff changeset
    20
# langs_vs90.vcproj   is for MSVC 2008
ebf0ece7d8f6 (svn r11503) [NoAI] -Sync: with trunk r11308:11502.
rubidium
parents: 9628
diff changeset
    21
# strgen_vs90.vcproj  is for MSVC 2008
ebf0ece7d8f6 (svn r11503) [NoAI] -Sync: with trunk r11308:11502.
rubidium
parents: 9628
diff changeset
    22
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    23
# openttd_vs80.sln    is for MSVC 2005
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    24
# openttd_vs80.vcproj is for MSVC 2005
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    25
# langs_vs80.vcproj   is for MSVC 2005
9722
ebf0ece7d8f6 (svn r11503) [NoAI] -Sync: with trunk r11308:11502.
rubidium
parents: 9628
diff changeset
    26
# strgen_vs80.vcproj  is for MSVC 2005
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    27
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    28
# openttd.sln         is for MSVC 2003
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    29
# openttd.vcproj      is for MSVC 2003
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    30
# langs.vcproj        is for MSVC 2003
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    31
# strgen.vcproj       is for MSVC 2003
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    32
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    33
# openttd.tgt         is for WatCom
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    34
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    35
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    36
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    37
# First, collect the list of Windows files
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    38
sdl_config="1"
9628
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    39
png_config="1"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    40
os="MSVC"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    41
enable_dedicated="0"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    42
with_cocoa="0"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    43
enable_directmusic="1"
9621
7654501cf02d (svn r9821) [NoAI] -Fix: support compilation without threads.
rubidium
parents: 6503
diff changeset
    44
with_threads="1"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    45
file_prefix="..\\\\src\\\\"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    46
9628
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    47
safety_check() {
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    48
	li=""
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    49
	for i in `cat $1 | grep -v "#\|ottdres.rc\|win32.cpp\|win32_v.cpp" | xargs -n 1 basename | sort`; do
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    50
		if [ "$li" = "$i" ]; then
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    51
			echo " !! ERROR !!"
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    52
			echo ""
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    53
			echo "The filename '$i' is already used in this project."
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    54
			echo "Because MSVC uses one single directory for all object files, it"
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    55
			echo "cannot handle filenames with the same name inside the same project."
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    56
			echo "Please rename either one of the file and try generating again."
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    57
			echo ""
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    58
			echo " !! ERROR !!"
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    59
			exit 1
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    60
		fi
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    61
		li="$i"
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    62
	done
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    63
}
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    64
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    65
load_main_data() {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    66
	# Read the source.list and process it
5763
d43b3021adcd (svn r7809) -Fix: convert \r to \n before parsing files with awk in projects/generate so it works using mingw/msys
glx
parents: 5726
diff changeset
    67
	RES="`cat $1 | tr '\r' '\n' | awk '
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    68
		/^(	*)#end/  { if (deep == skip) { skip -= 1; } deep -= 1; next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    69
		/^(	*)#else/ { if (deep == skip) { skip -= 1; } else if (deep - 1 == skip) { skip += 1; } next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    70
		/^(	*)#if/   {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    71
			gsub("	", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    72
			gsub("^#if", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    73
			gsub("^ ", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    74
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    75
			if (deep != skip) { deep += 1; next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    76
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    77
			deep += 1;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    78
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    79
			if ($0 == "SDL"         && "'$sdl_config'" == "")          { next; }
9628
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
    80
			if ($0 == "PNG"         && "'$png_config'" == "")          { next; }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    81
			if ($0 == "OSX"         && "'$os'" != "OSX")               { next; }
6371
9274ab7d1def (svn r8772) -Fix: forgot to update 'generate' file while updating 'configure' in the last 3 changes in 'configure'
truelight
parents: 6025
diff changeset
    82
			if ($0 == "OS2"         && "'$os'" != "OS2")               { next; }
9274ab7d1def (svn r8772) -Fix: forgot to update 'generate' file while updating 'configure' in the last 3 changes in 'configure'
truelight
parents: 6025
diff changeset
    83
			if ($0 == "PSP"         && "'$os'" != "PSP")               { next; }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    84
			if ($0 == "DEDICATED"   && "'$enable_dedicated'" != "1")   { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    85
			if ($0 == "COCOA"       && "'$with_cocoa'" == "0")         { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    86
			if ($0 == "BEOS"        && "'$os'" != "BEOS")              { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    87
			if ($0 == "WIN32"       && "'$os'" != "MINGW" &&
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    88
											"'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; }
6025
596b7176dc7f (svn r8326) -Fix r8304: forgot to update projects/generate to keep in mind the new WINCE tag in sources.list
truelight
parents: 5763
diff changeset
    89
			if ($0 == "WINCE"       && "'$os'" != "WINCE")             { next; }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    90
			if ($0 == "MSVC"        && "'$os'" != "MSVC")              { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    91
			if ($0 == "DIRECTMUSIC" && "'$enable_directmusic'" != "1") { next; }
6371
9274ab7d1def (svn r8772) -Fix: forgot to update 'generate' file while updating 'configure' in the last 3 changes in 'configure'
truelight
parents: 6025
diff changeset
    92
			if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" )        { next; }
9621
7654501cf02d (svn r9821) [NoAI] -Fix: support compilation without threads.
rubidium
parents: 6503
diff changeset
    93
			if ($0 == "NO_THREADS"  && "'$with_threads'" == "0")       { next; }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    94
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    95
			skip += 1;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    96
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    97
			next;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    98
		}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    99
		/^(	*)#/ {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   100
			if (deep == skip) {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   101
				gsub("	", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   102
				gsub("^#", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   103
				gsub("^ ", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   104
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   105
				if (first_time != 0) {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   106
					print "		</Filter>";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   107
				} else {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   108
					first_time = 1;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   109
				}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   110
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   111
				print "		<Filter";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   112
				print "			Name=\\""$0"\\"";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   113
				print "			Filter=\\"\\">";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   114
			}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   115
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   116
			next;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   117
		}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   118
		/^$/ { next }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   119
		{
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   120
			if (deep == skip) {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   121
				gsub("	", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   122
				gsub("/", "\\\\", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   123
				print "			<File";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   124
				print "				RelativePath=\\".\\\\'$file_prefix'"$0"\\">";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   125
				print "			</File>";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   126
			}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   127
		}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   128
		END { print "		</Filter>"; }
5763
d43b3021adcd (svn r7809) -Fix: convert \r to \n before parsing files with awk in projects/generate so it works using mingw/msys
glx
parents: 5726
diff changeset
   129
	'`"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   130
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   131
	eval "$2=\"\$RES\""
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   132
}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   133
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   134
load_lang_data() {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   135
	RES=""
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   136
	for i in `ls $1`
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   137
	do
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   138
		i=`basename $i | sed s/.txt$//g`
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   139
		RES="$RES
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   140
		<File
6423
fba62307aab7 (svn r8832) -Change: rewrite the solution file generator a little so it makes project files that look more like the ones generated by respectively MSVC2003 and MSVC2005.
rubidium
parents: 6371
diff changeset
   141
			RelativePath=\"..\\src\\lang\\"$i".txt\">
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   142
			<FileConfiguration
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   143
				Name=\"Debug|Win32\">
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   144
				<Tool
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   145
					Name=\"VCCustomBuildTool\"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   146
					Description=\"Generating "$i" language file\"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   147
					CommandLine=\"..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang &quot;\$(InputPath)&quot;&#x0D;&#x0A;\"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   148
					AdditionalDependencies=\"\"
6423
fba62307aab7 (svn r8832) -Change: rewrite the solution file generator a little so it makes project files that look more like the ones generated by respectively MSVC2003 and MSVC2005.
rubidium
parents: 6371
diff changeset
   149
					Outputs=\"..\\bin\\lang\\"$i".lng\"/>
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   150
			</FileConfiguration>
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   151
		</File>"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   152
	done
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   153
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   154
	eval "$2=\"\$RES\""
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   155
}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   156
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   157
generate() {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   158
	echo "Generating $2..."
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   159
	# Everything above the !!FILES!! marker
6503
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   160
	cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk '
5763
d43b3021adcd (svn r7809) -Fix: convert \r to \n before parsing files with awk in projects/generate so it works using mingw/msys
glx
parents: 5726
diff changeset
   161
		/^$/ { next }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   162
		/!!FILES!!/ { stop = 1; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   163
		{
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   164
			if (stop == 0) { print $0 }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   165
		}
6503
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   166
	' > "$ROOT_DIR/projects/$2"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   167
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   168
	# The files-list
6503
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   169
	echo "$1" | awk -v type="$3" '
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   170
		/&#x0D;&#x0A;/ {
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   171
			if (type == "msvc2003") gsub("&#x0D;&#x0A;", "\n", $0);
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   172
		}
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   173
		/Filter="">/ {
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   174
			if (type == "msvc2005") gsub("Filter=\"\">", ">", $0);
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   175
		}
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   176
		/"\/>/ {
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   177
			if (type == "msvc2005") gsub("/>", "\n" substr($0, 1, index($0, $1) - 2) "/>", $0);
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   178
		}
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   179
		/">/ {
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   180
			if (type == "msvc2005") gsub(">", "\n" substr($0, 1, index($0, $1) - 1) ">", $0);
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   181
		}
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   182
		{ print $0 }
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   183
	' >> "$ROOT_DIR/projects/$2"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   184
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   185
	# Everything below the !!FILES!! marker
6503
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   186
	cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk '
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   187
		BEGIN { stop = 1; }
5763
d43b3021adcd (svn r7809) -Fix: convert \r to \n before parsing files with awk in projects/generate so it works using mingw/msys
glx
parents: 5726
diff changeset
   188
		/^$/ { next }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   189
		/!!FILES!!/ { stop = 2; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   190
		{
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   191
			if (stop == 0) { print $0 }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   192
			if (stop == 2) { stop = 0 }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   193
		}
6503
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   194
	' >> "$ROOT_DIR/projects/$2"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   195
}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   196
9628
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
   197
safety_check "$ROOT_DIR/source.list"
b5c2449616b5 (svn r10195) [NoAI] -Sync: with trunk r10119:10194.
rubidium
parents: 9621
diff changeset
   198
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   199
load_main_data "$ROOT_DIR/source.list" openttd
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   200
load_lang_data "$ROOT_DIR/src/lang/*.txt" lang
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   201
6423
fba62307aab7 (svn r8832) -Change: rewrite the solution file generator a little so it makes project files that look more like the ones generated by respectively MSVC2003 and MSVC2005.
rubidium
parents: 6371
diff changeset
   202
generate "$openttd" "openttd.vcproj"      "msvc2003"
fba62307aab7 (svn r8832) -Change: rewrite the solution file generator a little so it makes project files that look more like the ones generated by respectively MSVC2003 and MSVC2005.
rubidium
parents: 6371
diff changeset
   203
generate "$openttd" "openttd_vs80.vcproj" "msvc2005"
9722
ebf0ece7d8f6 (svn r11503) [NoAI] -Sync: with trunk r11308:11502.
rubidium
parents: 9628
diff changeset
   204
generate "$openttd" "openttd_vs90.vcproj" "msvc2005"
6423
fba62307aab7 (svn r8832) -Change: rewrite the solution file generator a little so it makes project files that look more like the ones generated by respectively MSVC2003 and MSVC2005.
rubidium
parents: 6371
diff changeset
   205
generate "$lang" "langs.vcproj"           "msvc2003"
fba62307aab7 (svn r8832) -Change: rewrite the solution file generator a little so it makes project files that look more like the ones generated by respectively MSVC2003 and MSVC2005.
rubidium
parents: 6371
diff changeset
   206
generate "$lang" "langs_vs80.vcproj"      "msvc2005"
9722
ebf0ece7d8f6 (svn r11503) [NoAI] -Sync: with trunk r11308:11502.
rubidium
parents: 9628
diff changeset
   207
generate "$lang" "langs_vs90.vcproj"      "msvc2005"