Я использую CMake GUI
(без версии) с CMake
3.6.1. Я использую внешний модуль с add_subdirectory
, который показывает мне несколько предупреждений, которые мне не нравятся (из-за раздражающего загрязнения):Игнорировать предупреждения во внешних модулях при использовании CMake
CMake Warning (dev) at D:/Sources/.../external/g3log/latest/Build.cmake:11 (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.
Call Stack (most recent call first):
D:/Sources/.../external/g3log/latest/CMakeLists.txt:72 (INCLUDE)
This warning is for project developers. Use -Wno-dev to suppress it.
Я хочу, чтобы скрыть эти предупреждения, не касаясь внешних файлов. -Wno-dev
было бы нормально, если это повлияет только на внешний модуль (g3log
).
Я попытался использовать cmake_policy
как следующее при отсутствии эффекта:
cmake_policy(PUSH)
cmake_policy(SET CMP0054 OLD)
add_subdirectory(${g3log_DIR} ${CMAKE_BINARY_DIR}/../g3log)
cmake_policy(POP)
http://www.stackoverflow.com/questions/29123444/what-is-the-scope-of-cmake-policies – Liviu
Похоже, что ваш внешний модуль имеет команду 'project()'. Это сбрасывает политики для этого подмодуля и ниже. Вы можете попробовать установить ['CMAKE_POLICY_DEFAULT_CMP0054'] (https://cmake.org/cmake/help/latest/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.html) вместо вызова' cmake_policy() '. – Florian
Действительно, существует «проект (g3log)». Таким образом, вы говорите, это невозможно :(Если вы хотите, вы можете сформулировать ответ. – Liviu