From c690311b76f219b6be7ca9a956ac5ec0882e2cc6 Mon Sep 17 00:00:00 2001
From: Andy Cedilnik <andy.cedilnik@kitware.com>
Date: Fri, 30 Dec 2005 15:25:35 -0500
Subject: ENH: Add a way to compare two files

---
 Source/cmake.cxx | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index b13ca0f..27702d9 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -718,6 +718,7 @@ void CMakeCommandUsage(const char* program)
     << "  copy file destination   - copy file to destination (either file or directory)\n"
     << "  copy_if_different in-file out-file   - copy file if input has changed\n"
     << "  copy_directory source destination    - copy directory 'source' content to directory 'destination'\n"
+    << "  compare_files file1 file2 - check if file1 is same as file2\n"
     << "  echo [string]...        - displays arguments as text\n"
     << "  remove file1 file2 ...  - remove the file(s)\n"
     << "  tar [cxt][vfz] file.tar file/dir1 file/dir2 ... - create a tar.\n"
@@ -777,6 +778,19 @@ int cmake::CMakeCommand(std::vector<std::string>& args)
       return 0;
       }
 
+    // Compare files
+    if (args[1] == "compare_files" && args.size() == 4)
+      {
+      if(cmSystemTools::FilesDiffer(args[2].c_str(), args[3].c_str()))
+        {
+        std::cerr << "Files \""
+                  << args[2].c_str() << "\" to \"" << args[3].c_str()
+                  << "\" are different.\n";
+        return 1;
+        }
+      return 0;
+      }
+
     // Echo string
     else if (args[1] == "echo" )
       {
-- 
cgit v0.12