1 // Copyright (c) 2004 Francisco T. Martinez <paco@mfcon.com>
\r
2 // All rights reserved.
\r
6 using System.Xml.Serialization;
\r
7 using System.Collections;
\r
10 using System.Text.RegularExpressions;
\r
11 using Mfconsulting.General.Prj2Make.Schema.Prjx;
\r
12 using Mfconsulting.General.Prj2Make.Schema.Csproj;
\r
14 namespace Mfconsulting.General.Prj2Make
\r
18 public enum TypeOfFile {
\r
26 // Helper function to determine the type of
\r
27 // file being parsed based on its extension
\r
28 protected TypeOfFile DetermineFileType(string inFileName)
\r
30 string ExtentionString = System.IO.Path.GetExtension (inFileName);
\r
32 switch(ExtentionString)
\r
35 return TypeOfFile.sln;
\r
37 return TypeOfFile.csproj;
\r
39 return TypeOfFile.cmbx;
\r
41 return TypeOfFile.prjx;
\r
44 return TypeOfFile.unknown;
\r
47 public bool CreateCombineFromSln(string slnFileName)
\r
49 SlnMaker slnMkObj = new SlnMaker();
\r
51 // Load the sln and parse it
\r
52 slnMkObj.MsSlnToCmbxHelper(slnFileName);
\r
57 public bool CreatePrjxFromCsproj(string csprojFileName)
\r
59 SlnMaker slnMkObj = new SlnMaker();
\r
61 // Load the csproj and parse it
\r
62 slnMkObj.CreatePrjxFromCsproj(csprojFileName);
\r
67 // Main entry point for Makefile generation
\r
68 public string MakerMain(bool isUnixMode, bool isMcsMode, string slnFile)
\r
70 SlnMaker mk1Obj = null;
\r
71 CmbxMaker mk2Obj = null;
\r
72 // Test to see what kind if file we got
\r
73 // sln, csproj, cmbx, prjx
\r
74 switch(DetermineFileType(slnFile))
\r
76 case TypeOfFile.sln:
\r
77 mk1Obj = new SlnMaker();
\r
78 return mk1Obj.MsSlnHelper (isUnixMode, isMcsMode, true, slnFile);
\r
79 case TypeOfFile.csproj:
\r
80 mk1Obj = new SlnMaker();
\r
81 return mk1Obj.MsSlnHelper (isUnixMode, isMcsMode, false, slnFile);
\r
82 case TypeOfFile.cmbx:
\r
83 mk2Obj = new CmbxMaker();
\r
84 return mk2Obj.MdCmbxHelper (isUnixMode, isMcsMode, true, slnFile);
\r
85 case TypeOfFile.prjx:
\r
86 mk2Obj = new CmbxMaker();
\r
87 return mk2Obj.MdCmbxHelper (isUnixMode, isMcsMode, false, slnFile);
\r
89 return "Error: unknown file type.";
\r