tools/builder/Config.cs
author David Anderson <dvander@alliedmods.net>
Mon Jul 07 06:33:42 2008 +0000 (2008-07-07)
branchrefac-jit
changeset 2176 525f85d9af37
parent 2168 c24a6fa957db
child 2289 44045ead61cd
permissions -rw-r--r--
fixed some build issues. deprecated ISourceMod::GetScriptingVM
dvander@2168
     1
using System;
dvander@2168
     2
using System.IO;
dvander@2168
     3
using System.Text;
dvander@2168
     4
dvander@2168
     5
namespace builder
dvander@2168
     6
{
dvander@2168
     7
	public enum BasePlatform
dvander@2168
     8
	{
dvander@2168
     9
		Platform_Windows,
dvander@2168
    10
		Platform_Linux
dvander@2168
    11
	};
dvander@2168
    12
dvander@2168
    13
	public class Config
dvander@2168
    14
	{
dvander@2168
    15
		public string source_path;
dvander@2168
    16
		public string pkg_path;
dvander@2168
    17
		public string builder_path;
dvander@2168
    18
		public string build_options;
dvander@2168
    19
		public string pdb_log_file;
dvander@2168
    20
		public builder.BasePlatform Platform;
dvander@2168
    21
dvander@2168
    22
		public Config()
dvander@2168
    23
		{
dvander@2168
    24
			if ((int)System.Environment.OSVersion.Platform == 128)
dvander@2168
    25
			{
dvander@2168
    26
				Platform = BasePlatform.Platform_Linux;
dvander@2168
    27
			} 
dvander@2168
    28
			else 
dvander@2168
    29
			{
dvander@2168
    30
				Platform = BasePlatform.Platform_Windows;
dvander@2168
    31
			}
dvander@2168
    32
		}
dvander@2168
    33
dvander@2168
    34
		public static string PathFormat(string format, params string [] args)
dvander@2168
    35
		{
dvander@2168
    36
			string temp = string.Format(format, args);
dvander@2168
    37
			return temp.Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
dvander@2168
    38
		}
dvander@2168
    39
dvander@2168
    40
		public bool ReadFromFile(string file)
dvander@2168
    41
		{
dvander@2168
    42
			bool read = true;
dvander@2168
    43
			StreamReader sr = null;
dvander@2168
    44
			try
dvander@2168
    45
			{
dvander@2168
    46
				sr = new StreamReader(file);
dvander@2168
    47
dvander@2168
    48
				string line;
dvander@2168
    49
				string delim = "\t \n\r\v";
dvander@2168
    50
				string split = "=";
dvander@2168
    51
				
dvander@2168
    52
				while ( (line = sr.ReadLine()) != null )
dvander@2168
    53
				{
dvander@2168
    54
					line = line.Trim(delim.ToCharArray());
dvander@2168
    55
					if (line.Length < 1 || line[0] == ';')
dvander@2168
    56
					{
dvander@2168
    57
						continue;
dvander@2168
    58
					}
dvander@2168
    59
					string [] s = line.Split(split.ToCharArray());
dvander@2168
    60
					string key, val = "";
dvander@2168
    61
					if (s.GetLength(0) >= 1)
dvander@2168
    62
					{
dvander@2168
    63
						key = s[0];
dvander@2168
    64
						if (s.GetLength(0) >= 2)
dvander@2168
    65
						{
dvander@2168
    66
							for (int i=1; i<s.GetLength(0); i++)
dvander@2168
    67
							{
dvander@2168
    68
								val += s[i];
dvander@2168
    69
							}
dvander@2168
    70
						}
dvander@2168
    71
						key = key.Trim(delim.ToCharArray());
dvander@2168
    72
						val = val.Trim(delim.ToCharArray());
dvander@2168
    73
						if (key.CompareTo("SourceBase") == 0)
dvander@2168
    74
						{
dvander@2168
    75
							source_path = val;
dvander@2168
    76
						} 
dvander@2168
    77
						else if (key.CompareTo("OutputBase") == 0) 
dvander@2168
    78
						{
dvander@2168
    79
							pkg_path = val;
dvander@2168
    80
						} 
dvander@2168
    81
						else if (key.CompareTo("BuilderPath") == 0) 
dvander@2168
    82
						{
dvander@2168
    83
							builder_path = val;
dvander@2168
    84
						} 
dvander@2168
    85
						else if (key.CompareTo("BuildOptions") == 0) 
dvander@2168
    86
						{
dvander@2168
    87
							build_options = val;
dvander@2168
    88
						}
dvander@2168
    89
						else if (key.CompareTo("PDBLog") == 0)
dvander@2168
    90
						{
dvander@2168
    91
							pdb_log_file = val;
dvander@2168
    92
						}
dvander@2168
    93
					}
dvander@2168
    94
				}
dvander@2168
    95
			} 
dvander@2168
    96
			catch (System.Exception e)
dvander@2168
    97
			{
dvander@2168
    98
				Console.WriteLine("Unable to read {0:s}: {1:s}", file, e.Message);
dvander@2168
    99
				read = false;
dvander@2168
   100
			}
dvander@2168
   101
dvander@2168
   102
			if (sr != null)
dvander@2168
   103
			{
dvander@2168
   104
				sr.Close();
dvander@2168
   105
			}
dvander@2168
   106
dvander@2168
   107
			return read;
dvander@2168
   108
		}
dvander@2168
   109
	}
dvander@2168
   110
}