Estou tentando compilar o software de visualização gráfica Paraview para meu laptop baseado em ARM; no entanto, estou recebendo alguns avisos de configuração que parecem estar relacionados às 'políticas' do cmake. O texto de aviso e a página de manual cmake sugerem que eu possa executar o comando cmake_policy()
para definir uma política específica; no entanto, não consigo descobrir como ou onde executá-lo.
Como posso definir uma política cmake específica?
O comando CMake
cmake_policy()
está documentado na documentação do CMake .Geralmente é adicionado ao
CMakeLists.txt
arquivo do projeto para alterar o comportamento do próprio CMake, geralmente para poder lidarCMakeLists.txt
com recursos mais antigos com versões mais recentes do CMake.Você pode usá-lo para definir uma política individual usando
onde
<NNNN>
é um número de política do CMake e ondeOLD
indica que você deseja o "comportamento antigo" dessa política (a palavraOLD
também pode serNEW
).Ou você pode usar o comando para definir políticas de compatibilidade com uma versão específica do CMake usando
onde
x.xx
deve ser pelo menos2.4
.Em ambos os casos, o
CMakeLists.txt
arquivo do projeto é modificado ecmake
terá que ser executado novamente.Consulte também a documentação do
cmake_minimum_required()
.Eu uso o Cmake versão 3.22.0 e a resposta @kusalananda não resolveu o problema para mim. Eu adicionei a seguinte linha ao topo
CMakeLists.txt
e o problema foi corrigido:Claro,
NNNN
deve ser substituído pelo número fornecido na linha de comando.Os avisos da política CMake no final informam explicitamente aos usuários que eles não devem se preocupar com as mensagens. As mensagens estão lá para os desenvolvedores do projeto.
No entanto, às vezes, como usuário de um software, você tem um bom motivo para definir uma política ao instalar o projeto. Uma razão pode ser habilitar a otimização de tempo de link (também chamada de otimização interprocedural). Sem definir uma política, o CMake ignorará o arquivo
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
.Nesse caso, você pode usar
-DCMAKE_POLICY_DEFAULT_CMP<NNNN>
para obter o comportamento necessário, sem editar CMakeLists.txt. É claro que entrar em contato com o desenvolvedor, sugerindo que ele lide com a política na origem, é uma boa prática.