projects/generate
author rubidium
Fri, 20 Jul 2007 18:34:21 +0000
changeset 7790 73f48009ce0c
parent 7433 8e410e7ec0d7
child 8390 2fa829d2fca1
permissions -rwxr-xr-x
(svn r10642) -Merge (from NoAI): ./configure flag for disabling threading.
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
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    18
# openttd_vs80.sln    is for MSVC 2005
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    19
# openttd_vs80.vcproj is for MSVC 2005
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    20
# langs_vs80.vcproj   is for MSVC 2005
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    21
# strgen_vs80.vcprojc is vor MSVC 2005
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    22
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    23
# openttd.sln         is for MSVC 2003
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    24
# openttd.vcproj      is for MSVC 2003
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    25
# langs.vcproj        is for MSVC 2003
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    26
# strgen.vcproj       is for MSVC 2003
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.tgt         is for WatCom
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    29
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    30
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    31
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    32
# First, collect the list of Windows files
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    33
sdl_config="1"
7397
d371cc0fbb3c (svn r10148) -Fix r10143: make --without-png to compile again
truelight
parents: 6503
diff changeset
    34
png_config="1"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    35
os="MSVC"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    36
enable_dedicated="0"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    37
with_cocoa="0"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    38
enable_directmusic="1"
7790
73f48009ce0c (svn r10642) -Merge (from NoAI): ./configure flag for disabling threading.
rubidium
parents: 7433
diff changeset
    39
with_threads="1"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    40
file_prefix="..\\\\src\\\\"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    41
7432
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    42
safety_check() {
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    43
	li=""
7433
8e410e7ec0d7 (svn r10190) -Codechange: merged renderer and blitter to one single class API: blitter
truelight
parents: 7432
diff changeset
    44
	for i in `cat $1 | grep -v "#\|ottdres.rc\|win32.cpp\|win32_v.cpp" | xargs -n 1 basename | sort`; do
7432
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    45
		if [ "$li" = "$i" ]; then
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    46
			echo " !! ERROR !!"
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    47
			echo ""
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    48
			echo "The filename '$i' is already used in this project."
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    49
			echo "Because MSVC uses one single directory for all object files, it"
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    50
			echo "cannot handle filenames with the same name inside the same project."
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    51
			echo "Please rename either one of the file and try generating again."
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    52
			echo ""
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    53
			echo " !! ERROR !!"
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    54
			exit 1
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    55
		fi
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    56
		li="$i"
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    57
	done
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    58
}
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
    59
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    60
load_main_data() {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    61
	# 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
    62
	RES="`cat $1 | tr '\r' '\n' | awk '
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    63
		/^(	*)#end/  { if (deep == skip) { skip -= 1; } deep -= 1; next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    64
		/^(	*)#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
    65
		/^(	*)#if/   {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    66
			gsub("	", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    67
			gsub("^#if", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    68
			gsub("^ ", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    69
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    70
			if (deep != skip) { deep += 1; next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    71
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    72
			deep += 1;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    73
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    74
			if ($0 == "SDL"         && "'$sdl_config'" == "")          { next; }
7397
d371cc0fbb3c (svn r10148) -Fix r10143: make --without-png to compile again
truelight
parents: 6503
diff changeset
    75
			if ($0 == "PNG"         && "'$png_config'" == "")          { next; }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    76
			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
    77
			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
    78
			if ($0 == "PSP"         && "'$os'" != "PSP")               { next; }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    79
			if ($0 == "DEDICATED"   && "'$enable_dedicated'" != "1")   { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    80
			if ($0 == "COCOA"       && "'$with_cocoa'" == "0")         { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    81
			if ($0 == "BEOS"        && "'$os'" != "BEOS")              { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    82
			if ($0 == "WIN32"       && "'$os'" != "MINGW" &&
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    83
											"'$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
    84
			if ($0 == "WINCE"       && "'$os'" != "WINCE")             { next; }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    85
			if ($0 == "MSVC"        && "'$os'" != "MSVC")              { next; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    86
			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
    87
			if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" )        { next; }
7790
73f48009ce0c (svn r10642) -Merge (from NoAI): ./configure flag for disabling threading.
rubidium
parents: 7433
diff changeset
    88
			if ($0 == "NO_THREADS"  && "'$with_threads'" == "0")       { next; }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    89
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    90
			skip += 1;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    91
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    92
			next;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    93
		}
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
			if (deep == skip) {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    96
				gsub("	", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    97
				gsub("^#", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
    98
				gsub("^ ", "", $0);
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 (first_time != 0) {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   101
					print "		</Filter>";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   102
				} else {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   103
					first_time = 1;
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
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
				print "			Name=\\""$0"\\"";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   108
				print "			Filter=\\"\\">";
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
			next;
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   112
		}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   113
		/^$/ { next }
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
			if (deep == skip) {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   116
				gsub("	", "", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   117
				gsub("/", "\\\\", $0);
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   118
				print "			<File";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   119
				print "				RelativePath=\\".\\\\'$file_prefix'"$0"\\">";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   120
				print "			</File>";
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   121
			}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   122
		}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   123
		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
   124
	'`"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   125
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   126
	eval "$2=\"\$RES\""
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
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   129
load_lang_data() {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   130
	RES=""
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   131
	for i in `ls $1`
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   132
	do
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   133
		i=`basename $i | sed s/.txt$//g`
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   134
		RES="$RES
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   135
		<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
   136
			RelativePath=\"..\\src\\lang\\"$i".txt\">
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   137
			<FileConfiguration
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   138
				Name=\"Debug|Win32\">
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   139
				<Tool
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   140
					Name=\"VCCustomBuildTool\"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   141
					Description=\"Generating "$i" language file\"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   142
					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
   143
					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
   144
					Outputs=\"..\\bin\\lang\\"$i".lng\"/>
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   145
			</FileConfiguration>
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   146
		</File>"
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   147
	done
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   148
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   149
	eval "$2=\"\$RES\""
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   150
}
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   151
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   152
generate() {
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   153
	echo "Generating $2..."
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   154
	# 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
   155
	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
   156
		/^$/ { next }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   157
		/!!FILES!!/ { stop = 1; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   158
		{
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   159
			if (stop == 0) { print $0 }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   160
		}
6503
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   161
	' > "$ROOT_DIR/projects/$2"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   162
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   163
	# 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
   164
	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
   165
		/&#x0D;&#x0A;/ {
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   166
			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
   167
		}
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   168
		/Filter="">/ {
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   169
			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
   170
		}
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   171
		/"\/>/ {
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   172
			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
   173
		}
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   174
		/">/ {
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   175
			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
   176
		}
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   177
		{ print $0 }
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   178
	' >> "$ROOT_DIR/projects/$2"
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   179
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   180
	# 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
   181
	cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk '
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   182
		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
   183
		/^$/ { next }
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   184
		/!!FILES!!/ { stop = 2; }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   185
		{
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   186
			if (stop == 0) { print $0 }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   187
			if (stop == 2) { stop = 0 }
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   188
		}
6503
92d748cdefbe (svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
glx
parents: 6423
diff changeset
   189
	' >> "$ROOT_DIR/projects/$2"
5726
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
7432
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
   192
safety_check "$ROOT_DIR/source.list"
2c1075bc97d3 (svn r10189) -Add: added a safety check in MSVC project generate script to make sure we do not use filenames with the same name in different directories, as MSVC is plain stupid and can't handle that (go wine to Billy or something if you want it fixed properly)
truelight
parents: 7397
diff changeset
   193
5726
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   194
load_main_data "$ROOT_DIR/source.list" openttd
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   195
load_lang_data "$ROOT_DIR/src/lang/*.txt" lang
8f399788f6c9 (svn r7759) -Merge: makefile rewrite. This merge features:
rubidium
parents:
diff changeset
   196
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
   197
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
   198
generate "$openttd" "openttd_vs80.vcproj" "msvc2005"
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
   199
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
   200
generate "$lang" "langs_vs80.vcproj"      "msvc2005"