[CMake] CMake can't handle Unicode files with BOM
kent williams
nkwmailinglists at gmail.com
Tue Oct 19 13:11:28 EDT 2010
OK if anyone is tallying how many hours have been wasted on Unicode
files with BOM, add at least one for me.
This is a logged bug for CMake: http://public.kitware.com/Bug/view.php?id=11137
I assume that 2.8.4 or whatever will find a way to deal with this.
But my quick summary is this: A Unicode file with BOM causes CMake to
complain about the syntax of a CMake file, and many modern text
editors throw away the 3 byte BOM header -- BOM stands for 'Byte Order
Manifest', presumably telling you the byte order for the file. Which,
in the case of UTF-8 is silly because characters are only one byte
wide.
If you run into this, the solution is to strip the 3 characters from
the start of the file. This is rather difficult unless you have an
editor that will display and allow you to delete them. Here's a perl
script that will do it for you:
#!/usr/bin/perl
@file=<>;
$file[0] =~ s/^\xEF\xBB\xBF//;
print(@file);
Can CMake handle wide character CMakeLists.txt files? Now that would
blow MY mind -- CMakeLists.txt in Arabic or Chinese.
More information about the CMake
mailing list