gbuild: strip away unexpected CR char at the end of Windows filenames

As reported at e.g.
<https://ask.libreoffice.org/en/question/90346/building-libreoffice-in-cygwin-leads-to-infinite-loop/>,
sometimes MSVC (seen with 2013 on libreoffice-5-2, but there is no
indication that 2015 on master would be different) emits CR characters
at the end of filenames, resulting in unnecessary rebuilds at per-module
builds, and actually to an infinite loop when doing toplevel make.

Given that CR characters are unexpected in any filenames, it should be
safe to just strip those away unconditionally.

Change-Id: I3d56670b4d930a32489f889085711bfd436de82a
Reviewed-on: https://gerrit.libreoffice.org/40452
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
This commit is contained in:
Miklos Vajna
2017-07-26 15:50:09 +02:00
parent f30530229b
commit e9b9a45622

View File

@@ -45,6 +45,13 @@ BEGIN {
if (index($0, showincludes_prefix) == 1) {
$0 = substr($0, length(showincludes_prefix) + 1)
sub(/^ */, "")
# The output from MSVC may contain a carriage return character at the
# end of filenames, in which case the translation unit will depend on a
# non-existing header, resulting in constant rebuild of all files,
# prevent that.
sub(/
/, "")
gsub(/\\/, "/")
gsub(/ /, "\\ ")