diff options
author | Cristian Adam <cristian.adam@gmail.com> | 2021-02-02 14:18:48 (GMT) |
---|---|---|
committer | Cristian Adam <cristian.adam@gmail.com> | 2021-02-02 14:18:48 (GMT) |
commit | 05f16ca7eefad41cbb8d6a973f47fe7c1a488ae5 (patch) | |
tree | d3e9aa594804b4df093b9af5bccf0ffe32384533 | |
parent | 8387aa20f2c8ba870a8349665e2469f0e064f0b2 (diff) | |
download | CMake-05f16ca7eefad41cbb8d6a973f47fe7c1a488ae5.zip CMake-05f16ca7eefad41cbb8d6a973f47fe7c1a488ae5.tar.gz CMake-05f16ca7eefad41cbb8d6a973f47fe7c1a488ae5.tar.bz2 |
file(CONFIGURE): Use text mode for default OUTPUT content
This affects only Windows where \n will be translated as \r\n
Fixes: #21769
-rw-r--r-- | Source/cmFileCommand.cxx | 4 | ||||
-rw-r--r-- | Tests/RunCMake/File_Configure/NewLineStyle-ValidArg.cmake | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 5eff789..031e0d7 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -3122,12 +3122,14 @@ bool HandleConfigureCommand(std::vector<std::string> const& args, } std::string newLineCharacters = "\n"; + bool open_with_binary_flag = false; if (newLineStyle.IsValid()) { newLineCharacters = newLineStyle.GetCharacters(); + open_with_binary_flag = true; } cmGeneratedFileStream fout; - fout.Open(outputFile, false, true); + fout.Open(outputFile, false, open_with_binary_flag); if (!fout) { cmSystemTools::Error("Could not open file for write in copy operation " + outputFile); diff --git a/Tests/RunCMake/File_Configure/NewLineStyle-ValidArg.cmake b/Tests/RunCMake/File_Configure/NewLineStyle-ValidArg.cmake index 09aec45..5e35e5c 100644 --- a/Tests/RunCMake/File_Configure/NewLineStyle-ValidArg.cmake +++ b/Tests/RunCMake/File_Configure/NewLineStyle-ValidArg.cmake @@ -22,4 +22,8 @@ test_eol(CRLF "c" "630d0a") test_eol(UNIX "d" "640a") test_eol(LF "e" "650a") -test_eol("" "a\nb" "610a62") +if (WIN32) + test_eol("" "a\nb" "610d0a62") +elseif(UNIX) + test_eol("" "a\nb" "610a62") +endif() |