Пример #1
0
        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());
        }
Пример #2
0
        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);
                }
            }
        }