本文整理汇总了C#中Bam.Tool方法的典型用法代码示例。如果您正苦于以下问题:C# Bam.Tool方法的具体用法?C# Bam.Tool怎么用?C# Bam.Tool使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bam
的用法示例。
在下文中一共展示了Bam.Tool方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DetermineSpecs
DetermineSpecs(
Bam.Core.BaseTarget baseTarget,
Bam.Core.IToolset toolset)
{
// get version
string gccVersion = null;
{
var processStartInfo = new System.Diagnostics.ProcessStartInfo();
processStartInfo.FileName = toolset.Tool(typeof(C.ICompilerTool)).Executable(baseTarget);
processStartInfo.ErrorDialog = true;
processStartInfo.UseShellExecute = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.Arguments = "-dumpversion";
System.Diagnostics.Process process = null;
try
{
process = System.Diagnostics.Process.Start(processStartInfo);
}
catch (System.ComponentModel.Win32Exception ex)
{
throw new Bam.Core.Exception("'{0}': process filename '{1}'", ex.Message, processStartInfo.FileName);
}
if (null == process)
{
throw new Bam.Core.Exception("Unable to execute '{0}'", processStartInfo.FileName);
}
gccVersion = process.StandardOutput.ReadToEnd();
process.WaitForExit();
gccVersion = gccVersion.Trim();
}
// get target
string gccTarget = null;
{
var processStartInfo = new System.Diagnostics.ProcessStartInfo();
processStartInfo.FileName = toolset.Tool(typeof(C.ICompilerTool)).Executable(baseTarget);
processStartInfo.ErrorDialog = true;
processStartInfo.UseShellExecute = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.Arguments = "-dumpmachine";
System.Diagnostics.Process process = null;
try
{
process = System.Diagnostics.Process.Start(processStartInfo);
}
catch (System.ComponentModel.Win32Exception ex)
{
throw new Bam.Core.Exception("'{0}': process filename '{1}'", ex.Message, processStartInfo.FileName);
}
if (null == process)
{
throw new Bam.Core.Exception("Unable to execute '{0}'", processStartInfo.FileName);
}
gccTarget = process.StandardOutput.ReadToEnd();
process.WaitForExit();
gccTarget = gccTarget.Trim();
}
// get paths and targets
string pathPrefix = null;
string gxxIncludeDir = null;
string libDir = null;
var includePaths = new Bam.Core.StringArray();
{
var processStartInfo = new System.Diagnostics.ProcessStartInfo();
processStartInfo.FileName = toolset.Tool(typeof(C.ICompilerTool)).Executable(baseTarget);
processStartInfo.ErrorDialog = true;
processStartInfo.UseShellExecute = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.RedirectStandardError = true;
processStartInfo.Arguments = "-v";
System.Diagnostics.Process process = null;
try
{
process = System.Diagnostics.Process.Start(processStartInfo);
}
catch (System.ComponentModel.Win32Exception ex)
{
throw new Bam.Core.Exception("'{0}': process filename '{1}'", ex.Message, processStartInfo.FileName);
}
if (null == process)
{
throw new Bam.Core.Exception("Unable to execute '{0}'", processStartInfo.FileName);
}
var details = process.StandardOutput.ReadToEnd();
process.WaitForExit();
var splitDetails = details.Split(new string[] { System.Environment.NewLine }, System.StringSplitOptions.None);
foreach (var detail in splitDetails)
{
//.........这里部分代码省略.........