Because the minimum cmake version is set to 3.0.2, we see the following policy warning on Windows:
CMake Warning (dev) at C:/ci/ws/install/share/cmake/pybind11/pybind11Common.cmake:127 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
Quoted variables like "MSVC" will no longer be dereferenced when the policy
is set to NEW. Since the policy is not set the OLD behavior will be used.
If we want to continue to support older versions of CMake, we should opt into the new behavior to
not break the logic in pybind11Common.cmake. Alternatively, we could increase the miminum cmake
version of this project.
For reference, here is the line that is producing the warning:
With the the OLD behavior, I'm pretty sure CMake it will substitute the value of the variable MSVC into the expression "MSVC". I think we want the NEW behavior so we're comparing against the string literal "MSVC".
Because the minimum cmake version is set to 3.0.2, we see the following policy warning on Windows:
If we want to continue to support older versions of CMake, we should opt into the new behavior to not break the logic in pybind11Common.cmake. Alternatively, we could increase the miminum cmake version of this project.
For reference, here is the line that is producing the warning:
https://github.com/pybind/pybind11/blob/v2.7.1/tools/pybind11Common.cmake#L127
With the the OLD behavior, I'm pretty sure CMake it will substitute the value of the variable
MSVC
into the expression"MSVC"
. I think we want the NEW behavior so we're comparing against the string literal "MSVC".