Skip to content

Fix CMake warning on Windows#392

Merged
MatthijsBurgh merged 1 commit intoorocos:masterfrom
jacobperron:cmp0054_warning
Apr 4, 2022
Merged

Fix CMake warning on Windows#392
MatthijsBurgh merged 1 commit intoorocos:masterfrom
jacobperron:cmp0054_warning

Conversation

@jacobperron
Copy link
Copy Markdown
Contributor

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:

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".

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.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
@MatthijsBurgh MatthijsBurgh merged commit 507de66 into orocos:master Apr 4, 2022
@jacobperron jacobperron deleted the cmp0054_warning branch April 4, 2022 22:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants