【发布时间】:2020-06-03 22:08:27
【问题描述】:
我的情况是先有鸡还是先有蛋。我正在使用 vcpkg,这需要我从命令行设置一个 cmake 工具链文件。但我也有一些cmake_policy 语句需要在工具链文件之前的 CMakeLists.txt 中设置。
以下是 cmake 的调用方式:
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-linux ..
但是项目使用了一些包,在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
我的问题:有没有办法从 CMakeLists.txt 中指定工具链——大概是在设置了两个 cmake 策略之后立即——而不是在命令行中?
我想解决的警告是这个:
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)
【问题讨论】: