cmake_policy PUSH without matching POP
I'm on Windows 10 with CMake version 3.10.20171227-g497f4.
The following code generates the error message cmake_policy PUSH without matching POP
:
cmake_minimum_required (VERSION 3.9)
project (cmake-push-pop)
file (WRITE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FooBarConfig.cmake
"
cmake_policy (PUSH)
cmake_policy (VERSION 3.9)
include (CMakeFindDependencyMacro)
find_dependency (MyModule)
cmake_policy (POP)
")
file (WRITE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindMyModule.cmake
"
set (MyModule_FOUND FALSE)
")
list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
set (FooBar_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
find_package (FooBar)
Why is the error emitted? There's exactly one cmake_policy (PUSH)
and one cmake_policy (POP)
. The code will work only if I remove the policy stack commands from FooBarConfig.cmake
.
Edited by Sergiu Deitsch