使用cmake将compare_files与不同的行结尾相对应

问题描述 投票:3回答:2

我正在使用cmake来比较两个这样的文件:

cmake -E compare_files file1 file2

问题是file1file2有不同的行结尾。我正在使用cmake,因为我已经将它用于我的构建;上面的命令在我的测试中。

此时我不需要任何特别的东西。只是一种告诉用户文件不同的方法。 (希望没有差异。)如果存在差异,我会在此时报告并进行更仔细的手动检查。

如果有一种方便的报告方式(例如,打印到屏幕或写入文件),那么我愿意接受如何实现这一点的建议。但我真的只是想知道是否存在差异,不同的行结尾是不重要的。

是否有一个我错过的旗帜或选项会忽略行结尾的差异?

cmake line-endings
2个回答
5
投票

不幸的是,它似乎是一个unsupported feature(问题是“跟踪”here,看起来不会被处理)。

但是有一个解决方法:在开始比较之前,您可以使用configure_file创建具有统一行结尾的文件的副本。例如:

configure_file(<input> <output> NEWLINE_STYLE CRLF)

请注意,选项COPYONLYNEWLINE_STYLE不兼容,因此您必须小心configure_file不会进行任何意外的变量替换。


0
投票

使用CMake 3.14,您现在可以:

cmake -E compare_files --ignore-eol file1 file2
© www.soinside.com 2019 - 2024. All rights reserved.