protected MsvcCompile Compile( string sourceFile, Action<MsvcCompileParams> overrideParams) { var ccp = CreateCompileParams(sourceFile, overrideParams); var cc = new MsvcCompile(ProjectManager.BuildGraph, ccp); cc.ModuleName = ModuleName + ".Compile"; m_compiles.Add(cc); return cc; }
static void TestSingleNodeGraph() { var buildGraph = new BuildGraph(); var ccp = new MsvcCompileParams(); ccp.VcBinDir = @"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"; ccp.ToolChain = MsvcToolChain.ToolsX86TargetX86; ccp.CompileDir = @"K:\work\code\cpp\0002_test"; ccp.SourceFile = @"test02.cpp"; ccp.Compile = true; ccp.DebugInfoFormat = MsvcDebugInfoFormat.Normal; var cc = new MsvcCompile(buildGraph, ccp); BuildOptions buildOptions = new BuildOptions(); buildOptions.ContinueOnError = false; buildOptions.FileDecider = new FileSizeDateDecider(); buildOptions.MaxConcurrency = 1; string[] targets = { @"K:\work\code\cpp\0002_test\test02.obj" }; BuildResults buildResults = buildGraph.Execute(BuildAction.Build, buildOptions, targets, true); Console.WriteLine("BuildResults.Success = {0}", buildResults.Success); Console.WriteLine("BuildResults.TranslationCount = {0}", buildResults.TranslationCount); Console.WriteLine("BuildResults.UpToDateCount = {0}", buildResults.UpToDateCount); }
static MsvcCompile PpAndCompileOne(BuildGraph buildGraph, string sourceFile) { string sourceFileName = Path.GetFileName(sourceFile); string iName = Path.Combine(buildFileDir, QRPath.ChangeExtension(sourceFileName, ".i")); var ppp = new MsvcPreProcessParams(); ppp.VcBinDir = vcBinDir; ppp.ToolChain = toolChain; ppp.CompileDir = compileDir; ppp.BuildFileDir = buildFileDir; ppp.SourceFile = sourceFile; ppp.OutputPath = iName; ppp.IncludeDirs.Add(@"K:\work\code\lib\boost_1_43_0"); var pp = new MsvcPreProcess(buildGraph, ppp); string objName = Path.Combine(buildFileDir, QRPath.ChangeExtension(sourceFileName, ".obj")); var ccp = new MsvcCompileParams(); ccp.VcBinDir = vcBinDir; ccp.ToolChain = toolChain; ccp.CompileDir = compileDir; ccp.BuildFileDir = buildFileDir; ccp.CheckForImplicitIO = false; ccp.SourceFile = iName; ccp.ObjectPath = objName; ccp.Compile = true; ccp.DebugInfoFormat = MsvcDebugInfoFormat.Normal; ccp.CppExceptions = MsvcCppExceptions.Enabled; ccp.CompileAsCpp = true; var cc = new MsvcCompile(buildGraph, ccp); return cc; }
static void TestMsvcCompile(string vcBinDir) { var ccp = new MsvcCompileParams(); ccp.VcBinDir = vcBinDir; ccp.ToolChain = MsvcToolChain.ToolsX86TargetX86; ccp.CompileDir = @"K:\work\code\cpp\0002_test"; ccp.SourceFile = @"test02.cpp"; ccp.Compile = true; ccp.DebugInfoFormat = MsvcDebugInfoFormat.Normal; var buildGraph = new BuildGraph(); var cc = new MsvcCompile(buildGraph, ccp); cc.Execute(); cc.UpdateExplicitIO(); cc.UpdateImplicitInputs(); string depsCache = DependencyCache.CreateDepsCacheString(cc, new FileSizeDateDecider()); File.WriteAllText(cc.DepsCacheFilePath, depsCache); HashSet<string> implicitInputs = new HashSet<string>(); DependencyCache.LoadDepsCacheImplicitIO(cc.DepsCacheFilePath, implicitInputs); }