Help: Add 3.1 release note about '#' escaping in Makefiles (#15322)
The change in commit v3.1.0-rc1~174^2 (Makefile: Handle '#' in COMPILE_OPTIONS, 2014-08-12) was not compatible with code that tries to workaround the original bug. Unfortunately there is no good way to fix the bug in a compatible way. Add a release note to call attention to the change.
This commit is contained in:
parent
c118816d44
commit
8d70a91489
|
@ -353,6 +353,28 @@ Deprecated and Removed Features
|
|||
|
||||
CMake 3.1 again requires the quotes for this to work correctly.
|
||||
|
||||
* Prior to CMake 3.1 the Makefile generators did not escape ``#``
|
||||
correctly inside make variable assignments used in generated
|
||||
makefiles, causing them to be treated as comments. This made
|
||||
code like::
|
||||
|
||||
add_compile_options(-Wno-#pragma-messages)
|
||||
|
||||
not work in Makefile generators, but work in other generators.
|
||||
Now it is escaped correctly, making the behavior consistent
|
||||
across generators. However, some projects may have tried to
|
||||
workaround the original bug with code like::
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-\\#pragma-messages")
|
||||
|
||||
This added the needed escape for Makefile generators but also
|
||||
caused other generators to pass ``-Wno-\#pragma-messages`` to
|
||||
the shell, which would work only in POSIX shells.
|
||||
Unfortunately the escaping fix could not be made in a compatible
|
||||
way so this platform- and generator-specific workaround no
|
||||
longer works. Project code may test the :variable:`CMAKE_VERSION`
|
||||
variable value to make the workaround version-specific too.
|
||||
|
||||
* Callbacks established by the :command:`variable_watch` command will no
|
||||
longer receive the ``ALLOWED_UNKNOWN_READ_ACCESS`` access type when
|
||||
the undocumented ``CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS`` variable is
|
||||
|
|
Loading…
Reference in New Issue