[x265] CMake 3.1.0-rc1 changed policies (/VisualLeakDetector)
LigH
contact at ligh.de
Wed Nov 12 23:28:36 CET 2014
I just renewed my building environment on one PC, and got some warning
while preparing a build:
+----
-- cmake version 3.1.0-rc1
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler:
H:/MSYS/mingw/bin/x86_64-w64-mingw32-gcc.exe
-- Check for working C compiler:
H:/MSYS/mingw/bin/x86_64-w64-mingw32-gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler:
H:/MSYS/mingw/bin/x86_64-w64-mingw32-g++.exe
-- Check for working CXX compiler:
H:/MSYS/mingw/bin/x86_64-w64-mingw32-g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detected x86 target processor
-- Looking for include file inttypes.h
-- Looking for include file inttypes.h - found
-- Performing Test CC_HAS_NO_NARROWING
-- Performing Test CC_HAS_NO_NARROWING - Success
-- Performing Test CC_HAS_NO_ARRAY_BOUNDS
-- Performing Test CC_HAS_NO_ARRAY_BOUNDS - Success
-- Performing Test CC_HAS_FAST_MATH
-- Performing Test CC_HAS_FAST_MATH - Success
-- Performing Test CC_HAS_STACK_REALIGN
-- Performing Test CC_HAS_STACK_REALIGN - Success
-- Performing Test CC_HAS_FNO_EXCEPTIONS_FLAG
-- Performing Test CC_HAS_FNO_EXCEPTIONS_FLAG - Success
-- Found yasm: H:/MSYS/bin/yasm.exe (found version "1.2.0")
-- Found Yasm 1.2.0 to build assembly primitives
CMake Warning (dev) at cmake/FindVLD.cmake:57 (FIND_PATH):
Policy CMP0053 is not set: Simplify variable reference and escape
sequence
evaluation. Run "cmake --help-policy CMP0053" for policy details.
Use the
cmake_policy command to set the policy and suppress this warning.
For input:
'$ENV{PROGRAMFILES(X86)}/Visual Leak Detector'
the old evaluation rules produce:
'/Visual Leak Detector'
but the new evaluation rules produce an error:
Syntax error in cmake code at
H:/MSYS/home/Verwaltung/x265/source/cmake/FindVLD.cmake:61
when parsing string
$ENV{PROGRAMFILES(X86)}/Visual Leak Detector
Invalid character ('(') in a variable name: 'PROGRAMFILES'
Using the old result for compatibility since the policy is not set.
Call Stack (most recent call first):
CMakeLists.txt:206 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
-- hg found at d:/Programme/TortoiseHg/hg.exe
-- x265 version 1.4+58-98fb658f3229
-- The ASM_YASM compiler identification is unknown
-- Found assembler: H:/MSYS/bin/yasm.exe
-- Looking for strtok_r
-- Looking for strtok_r - not found
-- Looking for include file getopt.h
-- Looking for include file getopt.h - found
-- Configuring done
-- Generating done
+----
The recommended help page:
+----
$ cmake --help-policy CMP0053
CMP0053
-------
Simplify variable reference and escape sequence evaluation.
CMake 3.1 introduced a much faster implementation of evaluation of the
:ref:`Variable References` and :ref:`Escape Sequences` documented in the
``cmake-language(7)`` manual. While the behavior is identical
to the legacy implementation in most cases, some corner cases were
cleaned up to simplify the behavior. Specifically:
* Expansion of ``@VAR@`` reference syntax defined by the
``configure_file()`` and ``string(CONFIGURE)``
commands is no longer performed in other contexts.
* Literal ``${VAR}`` reference syntax may contain only
alphanumeric characters (``A-Z``, ``a-z``, ``0-9``) and
the characters ``_``, ``.``, ``/``, ``-``, and ``+``.
Variables with other characters in their name may still
be referenced indirectly, e.g.
.. code-block:: cmake
set(varname "otherwise & disallowed $ characters")
message("${${varname}}")
* The setting of policy ``CMP0010`` is not considered,
so improper variable reference syntax is always an error.
* More characters are allowed to be escaped in variable names.
Previously, only ``()#" \#@^`` were valid characters to
escape. Now any non-alphanumeric, non-semicolon, non-NUL
character may be escaped following the ``escape_identity``
production in the :ref:`Escape Sequences` section of the
``cmake-language(7)`` manual.
The ``OLD`` behavior for this policy is to honor the legacy behavior for
variable references and escape sequences. The ``NEW`` behavior is to
use the simpler variable expansion and escape sequence evaluation rules.
This policy was introduced in CMake version 3.1.
CMake version 3.1.0-rc1 warns when the policy is not set and uses
``OLD`` behavior. Use the ``cmake_policy()`` command to set
it to ``OLD`` or ``NEW`` explicitly.
+----
More information about the x265-devel
mailing list