Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the
block. This is no longer the preferred style.
Run the following shell code:
for c in else endif endforeach endfunction endmacro endwhile; do
echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
With the switch to upstream ncurses "ABI 6", Cygwin's ncurses has YA ABI
bump and is now libncurses10. However, the regex used to determine in
Utilities/Release/Cygwin/CMakeLists.txt which libncurses is being used
does not handle multiple-digit ABIs.
libncurses8 was the first version to be built with libtool and therefore
contains a hyphen (cygncurses-8.dll). It was first introduced in 2004,
so it should be sufficiently old to rely on. Furthermore, libncurses7
has a serious flaw in that it completely breaks if rebased.
Therefore the easiest solution is to only look at the hyphened versions
and change the regex accordingly.