private void WriteEmptyPrecompiledHeader(ProjectInfo projectInfo) { if (string.IsNullOrEmpty(projectInfo.PrecompiledHeaderName)) { return; } // For precompiled headers to work for projects that have .cpp files in multiple // folders, we need to write out a precompiled header file that includes the original precompiled header. string destFileName = Path.Combine(_cachePath, projectInfo.PrecompiledHeaderName); var text = new StringBuilder(); text.AppendLine("// This file is autogenerated by RudeBuild. Do not modify."); text.AppendLine(); text.AppendLine("#include \"" + projectInfo.PrecompiledHeaderAbsolutePath + "\""); var writer = new ModifiedTextFileWriter(destFileName, _settings.BuildOptions.ShouldForceWriteCachedFiles()); writer.Write(text.ToString()); }
private void ReadWrite(string projectFileName, SolutionInfo solutionInfo, SingleProjectReaderWriterBase singleProjectReaderWriter, bool performReadOnly) { XDocument projectDocument = XDocument.Load(projectFileName); if (null == projectDocument) { throw new InvalidDataException("Couldn't load project file '" + projectFileName + "'."); } ProjectInfo projectInfo = singleProjectReaderWriter.ReadWrite(projectFileName, solutionInfo, projectDocument, performReadOnly); solutionInfo.AddProject(projectInfo); if (!performReadOnly) { string destProjectFileName = _settings.ModifyFileName(projectFileName); var writer = new ModifiedTextFileWriter(destProjectFileName, _settings.BuildOptions.ShouldForceWriteCachedFiles()); if (writer.Write(projectDocument.ToString())) { _settings.Output.WriteLine("Creating project file " + destProjectFileName); } } }