多平台C ++项目和CMakeLists.txt的源代码行终止

时间:2015-10-24 07:56:16

标签: windows cmake line-breaks multiplatform

经过几乎完全在gnu-linux下的培训和工作后,我遇到了一个我必须要做的多平台项目。

我很惊讶地发现在回购中有LF和CRLF换行符的混合。我注意到大多数CRLF都是由两个提交者引入的,并在涉及的文件上运行dos2unix

但是,我还注意到所有CMakeLists.txt文件都是CRLF终止的,即使它们来自主要开发人员的提交(他们已经使用LF行结尾提交了所有其他来源),所以目前我离开了他们单独

我不熟悉windows或多平台开发,也不熟悉cmake,我想知道:有什么约定吗?或者,是否有任何特定于cmake的工具甚至在gnu-linux上生成CRLF?

如果重要,则回购时间为https://github.com/glipari/rtlib2.0

1 个答案:

答案 0 :(得分:1)

有CMake规则:

  

换行符可以编码为\ n或\ r \ n,但会转换为   \ n当读取输入文件时。

https://cmake.org/cmake/help/v3.3/manual/cmake-language.7.html#encoding

我知道的所有项目都使用\ n并要求他们的开发人员相应地配置他们的编辑器。类似于尾随空格和标签的使用。

如果你正在使用Git,你可以让你的开发人员使用Git提交钩子来检查换行符。如果他们没有遵循您的约定,则拒绝提交(除非开发人员禁用它)。