private static void DiffFiles()

in Utilities/CMake/ProjectFileProcessor/Program.cs [385:467]


        private static void DiffFiles(string fileOld, string fileNew, string rootFolder)
        {
            FileInfo fi1 = new FileInfo(fileOld);
            FileInfo fi2 = new FileInfo(fileNew);
            if (!fi1.Exists)
            {
                Console.WriteLine("Missing: " + fileOld);
                return;
            }
            if (!fi2.Exists)
            {
                Console.WriteLine("Missing: " + fileNew);
                return;
            }


            var fileOld_lines = new List<string>();
            var fileOld_files = new List<string>();
            var fileOld_files_pre = new List<string>();
            ReadFile(fileOld, ref fileOld_lines);
            ExtractFileSection(ref fileOld_lines, ref fileOld_files_pre, rootFolder, true);
            foreach (string sOld in fileOld_files_pre)
            {
                var s = sOld.Replace("$(MSBuildThisFileDirectory)", "");
                s = s.Replace("\"  />", "\" />");
                s = s.Replace("<", "");
                s = s.Replace("/>", "");
                s = s.Replace(">", "");
                s = s.Trim();
                s = s.ToLower();
                fileOld_files.Add(s);
            }
            var org_fileOld_files = new List<string>(fileOld_files);

            var fileNew_lines = new List<string>();
            var fileNew_files_pre = new List<string>();
            var fileNew_files = new List<string>();
            ReadFile(fileNew, ref fileNew_lines);
            //    <ClInclude Include="..\..\Include\xsapi\achievements.h" />
            //     <ClCompile Include="..\..\Source\Services\Achievements\achievement.cpp"  />
            ExtractFileSection(ref fileNew_lines, ref fileNew_files_pre, rootFolder, true);
            foreach (string sNew in fileNew_files_pre)
            {
                var s = sNew.Replace("$(MSBuildThisFileDirectory)", "");
                s = s.Replace("\"  />", "\" />");
                s = s.Replace("<", "");
                s = s.Replace("/>", "");
                s = s.Replace(">", "");
                s = s.Trim();
                s = s.ToLower();
                fileNew_files.Add(s);
            }
            var org_fileNew_files = new List<string>(fileNew_files);

            foreach (string sOld in fileOld_files)
            {
                if (sOld.Contains("achievements.h"))
                {
                    bool contains = fileNew_files.Contains(sOld);
                    fileNew_files.Remove(sOld);
                }

                fileNew_files.Remove(sOld);
            }
            foreach (string sNew in org_fileNew_files)
            {
                fileOld_files.Remove(sNew);
            }

            Console.WriteLine("Diffing:");
            Console.WriteLine("    " + fileOld);
            Console.WriteLine("    " + fileNew);
            foreach (string sOld in fileOld_files)
            {
                Console.WriteLine("Missing: " + sOld);
            }
            foreach (string sNew in fileNew_files)
            {
                Console.WriteLine("New: " + sNew);
            }
            Console.WriteLine("");
            Console.WriteLine("");
        }