| Index: visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/DependencyParser.cs
|
| diff --git a/visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/DependencyParser.cs b/visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/DependencyParser.cs
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9a516605a234e7950b893d7a5420afbbfe7d3507
|
| --- /dev/null
|
| +++ b/visual_studio/NativeClientVSAddIn/NaCl.Build.CPPTasks/DependencyParser.cs
|
| @@ -0,0 +1,53 @@
|
| +using System;
|
| +using System.Collections.Generic;
|
| +using System.Linq;
|
| +using System.Text;
|
| +
|
| +using System.IO;
|
| +
|
| +namespace NaCl.Build.CPPTasks
|
| +{
|
| + class DependencyParser
|
| + {
|
| + private static char[] elementEndings = new char[] { ' ', '\n', '\\' };
|
| + private List<string> m_dependencies;
|
| + public List<String> Dependencies
|
| + {
|
| + get
|
| + {
|
| + return m_dependencies;
|
| + }
|
| + }
|
| +
|
| + public DependencyParser(string filename)
|
| + {
|
| + m_dependencies = new List<string>();
|
| +
|
| + using (StreamReader reader = new StreamReader(filename, Encoding.ASCII))
|
| + {
|
| + while (!reader.EndOfStream)
|
| + {
|
| + string str = reader.ReadLine();
|
| + ParseLine(str);
|
| + }
|
| + reader.Close();
|
| + }
|
| + }
|
| +
|
| + private void ParseLine(string line)
|
| + {
|
| + string[] paths = line.Split(elementEndings, StringSplitOptions.RemoveEmptyEntries);
|
| +
|
| + foreach (string path in paths)
|
| + {
|
| + // ignore the source object file
|
| + // assumes .o file is only possible file ending with 'o'
|
| + if (path.ElementAt(path.Length - 1) != 'o' && path.ElementAt(path.Length - 1) != ':')
|
| + {
|
| + string newDependency = GCCUtilities.Convert_Path_Posix_To_Windows(path);
|
| + m_dependencies.Add(newDependency);
|
| + }
|
| + }
|
| + }
|
| + }
|
| +}
|
|
|