Ninja: Cara membuat build verbose secara default

Dibuat pada 16 Jan 2015  ·  10Komentar  ·  Sumber: ninja-build/ninja

Halo,

Saya menggunakan ninja melalui CMake. Jika saya menggunakan generator Unix Makefile, saya dapat meneruskan -DCMAKE_VERBOSE_MAKEFILE=ON yang menghasilkan Makefile verbose secara default. Generator Makefile mengarsipkan ini dengan menulis VERBOSE=1 ke dalam makefile. Apakah ada sesuatu yang dapat ditulis ke dalam file ninja untuk mendapatkan hasil yang sama seperti memanggil ninja melalui -v ?

Terima kasih,
Gregor

Komentar yang paling membantu

Untuk referensi untuk orang lain, perintah SET ini berhasil dan membuat Ninja bertele-tele:

set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")

Semua 10 komentar

Tidak. Apa salahnya memanggil ninja dengan -v ?

Ini tidak bisa diperbaiki oleh ninja saja.

  • Pertama-tama, generator cmake untuk file ninja harus diubah untuk mendukung ini. (Dalam kasus generator makefile, cmake menghasilkan makefile yang menekan target target khusus .SILENT.)
    Jika saya mencoba apa yang disarankan @gjasny , saya mengerti
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:
  • Ninja harus menyediakan sesuatu seperti target khusus .SILENT dan ekspansi variabel. Tapi saya ragu ninja dirancang untuk memperluas variabel.

CMake 3.3 memiliki solusi untuk ini: https://github.com/Kitware/CMake/commit/ce935ebe50926bde199d86fbde4a78974a4043f9

Jika Anda mengkonfigurasi dengan -DCMAKE_VERBOSE_MAKEFILE=ON maka cmake --build akan menambahkan parameter -v ke panggilan ninja.

Tetap saja akan menyenangkan untuk mendapatkan sesuatu yang bisa kita tambahkan ke file Ninja. Tapi saat ini saya bisa hidup dengan status-quo.

@gjasny , saya menggunakan CMake 3.10 dan meskipun saya mengatur CMakeLists.txt berikut set(CMAKE_VERBOSE_MAKEFILE ON) Saya tidak mendapatkan informasi tambahan dari Ninja.

Ada ide?

Anda perlu menjadikannya variabel cache. Silakan lihat perintah set CMake untuk cara melakukannya.

Untuk referensi untuk orang lain, perintah SET ini berhasil dan membuat Ninja bertele-tele:

set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")

Tetap saja akan menyenangkan untuk mendapatkan sesuatu yang bisa kita tambahkan ke file Ninja.

Mengapa Anda membutuhkan itu?

Silakan buka kembali, jika menurut Anda ini masih diperlukan.

Untuk orang lain yang mungkin mengalami bug ini: set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON") tampaknya tidak berfungsi di Windows. Reproduksi:

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)

Isi simple.cpp tidak masalah.

Dan kemudian skrip yang saya gunakan untuk menjalankan 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 .

Melewati -DCMAKE_VERBOSE_MAKEFILE=ON ke permintaan cmake tidak berhasil.

menambahkan set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON" FORCE) untuk memaksa cmake menelan pengaturan bekerja untuk saya. Mungkin Anda harus melakukan regenerasi.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat