CMAKE with both a toolchain file and cmake_policy

Viewed 989

I have a chicken-and-egg situation. I am using vcpkg, which requires me to set a cmake toolchain file from the command line. But I also have some cmake_policy statements which need to be set in CMakeLists.txt prior to the toolchain file.

Here is how cmake is called:

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-linux ..

But the projects uses some packages which requires the following two policies immediately after CMAKE_MINIMUM_REQUIRED:

CMAKE_POLICY ( SET CMP0003 NEW ) # libs linked via full path
CMAKE_POLICY ( SET CMP0011 NEW ) # push/pop instead of no_policy_scope

My question: Is there a way to specify the toolchain from within CMakeLists.txt -- presumably immediately after having set the two cmake policies -- instead of at the command line?

The warning I get which I'd like to solve is this one:

CMake Warning (dev) at vcpkg/scripts/buildsystems/vcpkg.cmake:221 (_add_executable):
  Policy CMP0003 should be set before this line.  Add code such as
    if(COMMAND cmake_policy)
      cmake_policy(SET CMP0003 NEW)
    endif(COMMAND cmake_policy)
1 Answers
Related