Add Prj2Make from Francisco Martinez
[mono.git] / mcs / tools / prj2make / PrjHelper.cs
1 // Copyright (c) 2004 Francisco T. Martinez <paco@mfcon.com>\r
2 // All rights reserved.\r
3 //\r
4 using System;\r
5 using System.Xml;\r
6 using System.Xml.Serialization;\r
7 using System.Collections;\r
8 using System.IO;\r
9 using System.Text;\r
10 using System.Text.RegularExpressions;\r
11 using Mfconsulting.General.Prj2Make.Schema.Prjx;\r
12 using Mfconsulting.General.Prj2Make.Schema.Csproj;\r
13 \r
14 namespace Mfconsulting.General.Prj2Make\r
15 {\r
16     public class Maker\r
17     {\r
18         public enum TypeOfFile {\r
19                 unknown,\r
20                         sln,\r
21                         csproj,\r
22                         cmbx,\r
23                         prjx                     \r
24                 }\r
25                 \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
29                 {\r
30                         string ExtentionString = System.IO.Path.GetExtension (inFileName);\r
31                         \r
32                         switch(ExtentionString)\r
33                         {\r
34                         case ".sln":\r
35                                 return TypeOfFile.sln;\r
36                         case ".csproj":\r
37                                 return TypeOfFile.csproj;\r
38                         case ".cmbx":\r
39                                 return TypeOfFile.cmbx;\r
40                         case ".prjx":\r
41                                 return TypeOfFile.prjx;\r
42                         }               \r
43                         \r
44                         return TypeOfFile.unknown;\r
45                 }\r
46 \r
47                 public bool CreateCombineFromSln(string slnFileName)\r
48                 {\r
49                         SlnMaker slnMkObj = new SlnMaker();\r
50 \r
51                         // Load the sln and parse it\r
52                         slnMkObj.MsSlnToCmbxHelper(slnFileName);\r
53 \r
54                         return false;\r
55                 }\r
56      \r
57                 public bool CreatePrjxFromCsproj(string csprojFileName)\r
58                 {\r
59                         SlnMaker slnMkObj = new SlnMaker();\r
60 \r
61                         // Load the csproj and parse it\r
62                         slnMkObj.CreatePrjxFromCsproj(csprojFileName);\r
63 \r
64                         return false;\r
65                 }\r
66      \r
67         // Main entry point for Makefile generation\r
68                 public string MakerMain(bool isUnixMode, bool isMcsMode, string slnFile)\r
69         {\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
75             {\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
88             }\r
89                 return "Error: unknown file type.";\r
90                 }\r
91     }    \r
92 }\r