[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