Beispiel #1
0
 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;
 }
Beispiel #2
0
        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;
        }
Beispiel #4
0
        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);
        }