Browse Source

Merge topic 'windows-utf-8'

cdc29c36 Encoding:  Switch to use UTF-8 internally by default on Windows.
Brad King 11 years ago
parent
commit
287070ceb8
3 changed files with 28 additions and 4 deletions
  1. 1 1
      CMakeLists.txt
  2. 5 3
      Help/manual/cmake-language.7.rst
  3. 22 0
      Help/release/dev/windows-utf-8.rst

+ 1 - 1
CMakeLists.txt

@@ -45,7 +45,7 @@ if(NOT DEFINED CMAKE_CXX_STANDARD)
 endif()
 
 # option to set the internal encoding of CMake to UTF-8
-option(CMAKE_ENCODING_UTF8 "Use UTF-8 encoding internally (experimental)." OFF)
+option(CMAKE_ENCODING_UTF8 "Use UTF-8 encoding internally." ON)
 mark_as_advanced(CMAKE_ENCODING_UTF8)
 if(CMAKE_ENCODING_UTF8)
   set(KWSYS_ENCODING_DEFAULT_CODEPAGE CP_UTF8)

+ 5 - 3
Help/manual/cmake-language.7.rst

@@ -60,14 +60,16 @@ Syntax
 Encoding
 --------
 
-A CMake Language source file must be written in 7-bit ASCII text
-to be portable across all supported platforms.  Newlines may be
+A CMake Language source file may be written in 7-bit ASCII text for
+maximum portability across all supported platforms.  Newlines may be
 encoded as either ``\n`` or ``\r\n`` but will be converted to ``\n``
 as input files are read.
 
 Note that the implementation is 8-bit clean so source files may
 be encoded as UTF-8 on platforms with system APIs supporting this
-encoding.  Furthermore, CMake 3.0 and above allow a leading UTF-8
+encoding.  In addition, CMake 3.2 and above support source files
+encoded in UTF-8 on Windows (using UTF-16 to call system APIs).
+Furthermore, CMake 3.0 and above allow a leading UTF-8
 `Byte-Order Mark`_ in source files.
 
 .. _`Byte-Order Mark`: http://en.wikipedia.org/wiki/Byte_order_mark

+ 22 - 0
Help/release/dev/windows-utf-8.rst

@@ -0,0 +1,22 @@
+windows-utf-8
+-------------
+
+* On Windows, CMake learned to support international characters.
+  This allows use of characters from multiple (spoken) languages
+  in CMake code, paths to source files, configured files such as
+  ``.h.in`` files, and other files read and written by CMake.
+  Because CMake interoperates with many other tools, there may
+  still be some limitations when using certain international
+  characters.
+
+  Files written in the :manual:`cmake-language(7)`, such as
+  ``CMakeLists.txt`` or ``*.cmake`` files, are expected to be
+  encoded as UTF-8.  If files are already ASCII, they will be
+  compatible.  If files were in a different encoding, including
+  Latin 1, they will need to be converted.
+
+  The Visual Studio generators now write solution and project
+  files in UTF-8 instead of Windows-1252.  Windows-1252 supported
+  Latin 1 languages such as those found in North and South America
+  and Western Europe.  With UTF-8, additional languages are now
+  supported.