mirror of
https://github.com/reactos/CMake.git
synced 2025-02-08 12:58:46 +00:00
cmake: Add --ignore-eol option to -E compare_files
command
Fixes: #13007
This commit is contained in:
parent
40628b2519
commit
a5098cad94
@ -373,9 +373,10 @@ Available commands are:
|
||||
``chdir <dir> <cmd> [<arg>...]``
|
||||
Change the current working directory and run a command.
|
||||
|
||||
``compare_files <file1> <file2>``
|
||||
``compare_files [--ignore-eol] <file1> <file2>``
|
||||
Check if ``<file1>`` is same as ``<file2>``. If files are the same,
|
||||
then returns 0, if not it returns 1.
|
||||
then returns 0, if not it returns 1. The ``--ignore-eol`` option
|
||||
implies line-wise comparison and ignores LF/CRLF differences.
|
||||
|
||||
``copy <file>... <destination>``
|
||||
Copy files to ``<destination>`` (either file or directory).
|
||||
|
6
Help/release/dev/compare_files-ignore-eol.rst
Normal file
6
Help/release/dev/compare_files-ignore-eol.rst
Normal file
@ -0,0 +1,6 @@
|
||||
compare_files-ignore-eol
|
||||
------------------------
|
||||
|
||||
* The :manual:`cmake(1)` ``-E compare_files`` command learned a new
|
||||
``--ignore-eol`` option to specify that end-of-line differences (e.g. LF vs
|
||||
CRLF) should be ignored when comparing files.
|
@ -78,7 +78,8 @@ void CMakeCommandUsage(const char* program)
|
||||
<< " capabilities - Report capabilities built into cmake "
|
||||
"in JSON format\n"
|
||||
<< " chdir dir cmd [args...] - run command in a given directory\n"
|
||||
<< " compare_files file1 file2 - check if file1 is same as file2\n"
|
||||
<< " compare_files [--ignore-eol] file1 file2\n"
|
||||
<< " - check if file1 is same as file2\n"
|
||||
<< " copy <file>... destination - copy files to destination "
|
||||
"(either file or directory)\n"
|
||||
<< " copy_directory <dir>... destination - copy content of <dir>... "
|
||||
@ -540,10 +541,20 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
|
||||
}
|
||||
|
||||
// Compare files
|
||||
if (args[1] == "compare_files" && args.size() == 4) {
|
||||
if (cmSystemTools::FilesDiffer(args[2], args[3])) {
|
||||
std::cerr << "Files \"" << args[2] << "\" to \"" << args[3]
|
||||
<< "\" are different.\n";
|
||||
if (args[1] == "compare_files" && (args.size() == 4 || args.size() == 5)) {
|
||||
bool filesDiffer;
|
||||
if (args.size() == 4) {
|
||||
filesDiffer = cmSystemTools::FilesDiffer(args[2], args[3]);
|
||||
} else if (args[2] == "--ignore-eol") {
|
||||
filesDiffer = cmsys::SystemTools::TextFilesDiffer(args[3], args[4]);
|
||||
} else {
|
||||
::CMakeCommandUsage(args[0].c_str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (filesDiffer) {
|
||||
std::cerr << "Files \"" << args[args.size() - 2] << "\" to \""
|
||||
<< args[args.size() - 1] << "\" are different.\n";
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
@ -0,0 +1 @@
|
||||
1
|
@ -0,0 +1 @@
|
||||
^Files ".*/compare_files/lf" to ".*/compare_files/crlf" are different.$
|
@ -0,0 +1 @@
|
||||
1
|
@ -0,0 +1 @@
|
||||
^Files "nonexistent_a" to "nonexistent_b" are different.$
|
@ -18,6 +18,10 @@ run_cmake_command(Uno-src ${CMAKE_COMMAND} -B DummyBuildDir -UVAR)
|
||||
run_cmake_command(E-no-arg ${CMAKE_COMMAND} -E)
|
||||
run_cmake_command(E_capabilities ${CMAKE_COMMAND} -E capabilities)
|
||||
run_cmake_command(E_capabilities-arg ${CMAKE_COMMAND} -E capabilities --extra-arg)
|
||||
run_cmake_command(E_compare_files-different-eol ${CMAKE_COMMAND} -E compare_files ${RunCMake_SOURCE_DIR}/compare_files/lf ${RunCMake_SOURCE_DIR}/compare_files/crlf)
|
||||
run_cmake_command(E_compare_files-ignore-eol-same ${CMAKE_COMMAND} -E compare_files --ignore-eol ${RunCMake_SOURCE_DIR}/compare_files/lf ${RunCMake_SOURCE_DIR}/compare_files/crlf)
|
||||
run_cmake_command(E_compare_files-ignore-eol-empty ${CMAKE_COMMAND} -E compare_files --ignore-eol ${RunCMake_SOURCE_DIR}/compare_files/empty1 ${RunCMake_SOURCE_DIR}/compare_files/empty2)
|
||||
run_cmake_command(E_compare_files-ignore-eol-nonexistent ${CMAKE_COMMAND} -E compare_files --ignore-eol nonexistent_a nonexistent_b)
|
||||
run_cmake_command(E_echo_append ${CMAKE_COMMAND} -E echo_append)
|
||||
run_cmake_command(E_rename-no-arg ${CMAKE_COMMAND} -E rename)
|
||||
run_cmake_command(E_server-arg ${CMAKE_COMMAND} -E server --extra-arg)
|
||||
|
2
Tests/RunCMake/CommandLine/compare_files/.gitattributes
vendored
Normal file
2
Tests/RunCMake/CommandLine/compare_files/.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
crlf eol=crlf
|
||||
lf eol=lf
|
1
Tests/RunCMake/CommandLine/compare_files/crlf
Normal file
1
Tests/RunCMake/CommandLine/compare_files/crlf
Normal file
@ -0,0 +1 @@
|
||||
line1
|
0
Tests/RunCMake/CommandLine/compare_files/empty1
Normal file
0
Tests/RunCMake/CommandLine/compare_files/empty1
Normal file
0
Tests/RunCMake/CommandLine/compare_files/empty2
Normal file
0
Tests/RunCMake/CommandLine/compare_files/empty2
Normal file
1
Tests/RunCMake/CommandLine/compare_files/lf
Normal file
1
Tests/RunCMake/CommandLine/compare_files/lf
Normal file
@ -0,0 +1 @@
|
||||
line1
|
Loading…
x
Reference in New Issue
Block a user