Skip to content

CMake policy deprecation warning in itkhdf5 #56

@phcerdan

Description

@phcerdan

Description

CMake policy deprecation warning in itkhdf5

Steps to Reproduce

Configure current master with cmake 3.12.1

Expected behavior

No deprecation warnings

Actual behavior

 CMake Warning (dev) at /usr/share/cmake-3.12/Modules/CheckIncludeFileCXX.cmake:69 (message):
   Policy CMP0075 is not set: Include file check macros honor
   CMAKE_REQUIRED_LIBRARIES.  Run "cmake --help-policy CMP0075" for policy
   details.  Use the cmake_policy command to set the policy and suppress this
   warning.

   CMAKE_REQUIRED_LIBRARIES is set to:

     m;dl

   For compatibility with CMake 3.11 and below this check is ignoring it.
 Call Stack (most recent call first):
   Modules/ThirdParty/HDF5/src/itkhdf5/config/cmake_ext_mod/HDFUseCXX.cmake:39 (CHECK_INCLUDE_FILE_CXX)
   Modules/ThirdParty/HDF5/src/itkhdf5/CMakeLists.txt:862 (include)
 This warning is for project developers.  Use -Wno-dev to suppress it.

This is the help policy: cmake --help-policy CMP0075

CMP0075
-------

Include file check macros honor ``CMAKE_REQUIRED_LIBRARIES``.

In CMake 3.12 and above, the

* ``check_include_file`` macro in the ``CheckIncludeFile`` module, the
* ``check_include_file_cxx`` macro in the
  ``CheckIncludeFileCXX`` module, and the
* ``check_include_files`` macro in the ``CheckIncludeFiles`` module

now prefer to link the check executable to the libraries listed in the
``CMAKE_REQUIRED_LIBRARIES`` variable.  This policy provides compatibility
with projects that have not been updated to expect this behavior.

The ``OLD`` behavior for this policy is to ignore ``CMAKE_REQUIRED_LIBRARIES``
in the include file check macros.  The ``NEW`` behavior of this policy is to
honor ``CMAKE_REQUIRED_LIBRARIES`` in the include file check macros.

This policy was introduced in CMake version 3.12.  CMake version
3.12.1 warns when the policy is not set and uses ``OLD`` behavior.
Use the ``cmake_policy()`` command to set it to ``OLD`` or ``NEW``
explicitly.

.. note::
  The ``OLD`` behavior of a policy is
  ``deprecated by definition``
  and may be removed in a future version of CMake.

Reproducibility

Everytime building with cmake 3.12.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:ConfirmedConfirmed/reproduced issue on a different machine with same or similar settings to those reportedtype:InfrastructureInfrastructure/ecosystem related changes, such as CMake or buildbots

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions