Olá,
Estou usando o ninja via CMake. Se eu usar o gerador de Makefile Unix, posso passar -DCMAKE_VERBOSE_MAKEFILE=ON
que resulta em Makefiles verbosos por padrão. O gerador de Makefile arquiva isso escrevendo VERBOSE=1
no makefile. Existe algo que ele possa escrever em um arquivo ninja para obter o mesmo resultado que chamar o ninja por meio de -v
?
Obrigado,
Gregor
Não. O que há de errado em chamar ninja com -v
?
Isso não pode ser corrigido apenas pelo ninja.
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -G Ninja ../src/cmake4eclipse/testprojects/C-1src/src1
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
O CMake 3.3 tem uma solução alternativa para isso: https://github.com/Kitware/CMake/commit/ce935ebe50926bde199d86fbde4a78974a4043f9
Se você configurar com -DCMAKE_VERBOSE_MAKEFILE=ON
então cmake --build
adicionará o parâmetro -v
à chamada ninja.
Ainda assim, seria bom conseguir algo que pudéssemos adicionar aos arquivos Ninja. Mas atualmente posso viver com o status quo.
@gjasny , eu uso o CMake 3.10 e, embora eu defina em CMakeLists.txt
o seguinte set(CMAKE_VERBOSE_MAKEFILE ON)
, não recebo nenhuma informação extra do Ninja.
Qualquer ideia?
Você precisa torná-lo uma variável de cache. Consulte o comando CMake set para saber como fazer isso.
Para referência para outros, este comando SET
fez o trabalho e tornou o Ninja prolixo:
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")
Ainda assim, seria bom conseguir algo que pudéssemos adicionar aos arquivos Ninja.
Por que você precisa disso?
Por favor, reabra, se você ainda acha que isso é necessário.
Para outras pessoas que podem ter encontrado este bug: set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")
não parece funcionar no Windows. Reprodução:
CMakeLists.txt
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(simplecmake CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")
add_library(simplecmake simple.cpp)
O conteúdo do simple.cpp não importa.
E então o script que uso para executar o cmake.
<strong i="12">@echo</strong> off
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
cd c:/Users/Administrator/ezyang/lab3
cd build
set CC=cl
set CXX=cl
cmake -GNinja ..
cmake --build .
Passar -DCMAKE_VERBOSE_MAKEFILE=ON
para a invocação cmake funciona.
adicionar set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON" FORCE)
para forçar o cmake a engolir a configuração funcionou para mim. Talvez você tenha que se regenerar, no entanto.
Comentários muito úteis
Para referência para outros, este comando
SET
fez o trabalho e tornou o Ninja prolixo: