Ninja: كيفية جعل البناء مطولا بشكل افتراضي

تم إنشاؤها على ١٦ يناير ٢٠١٥  ·  10تعليقات  ·  مصدر: ninja-build/ninja

مرحبا،

أنا أستخدم النينجا عبر CMake. إذا استخدمت مُنشئ Unix Makefile ، فأنا قادر على تمرير -DCMAKE_VERBOSE_MAKEFILE=ON مما ينتج عنه ملفات Makefiles مطولة بشكل افتراضي. يقوم منشئ Makefile بأرشفة هذا عن طريق كتابة VERBOSE=1 في ملف makefile. هل هناك أي شيء يمكن كتابته في ملف النينجا للحصول على نفس النتيجة مثل استدعاء النينجا عبر -v ؟

شكرا،
جريجور

التعليق الأكثر فائدة

كمرجع للآخرين ، قام هذا الأمر SET بالعمل وجعل Ninja مطولًا:

set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")

ال 10 كومينتر

لا. ما الخطأ في استدعاء النينجا بـ -v ؟

لا يمكن إصلاح هذا عن طريق النينجا وحده.

  • بادئ ذي بدء ، يجب تغيير مولد cmake لملفات النينجا لدعم ذلك. (في حالة مولد makefile ، يقوم cmake بإنشاء ملف makefile يقوم بقمع الهدف الخاص الصامت.)
    إذا جربت ما يقترحهgjasny ،
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 شيئًا مثل الهدف الخاص. التوسع الصامت والمتغير. لكنني أشك في أن النينجا مصمم لتوسيع المتغيرات.

يحتوي CMake 3.3 على حل بديل لهذا: https://github.com/Kitware/CMake/commit/ce935ebe50926bde199d86fbde4a78974a4043f9

إذا قمت بالتكوين باستخدام -DCMAKE_VERBOSE_MAKEFILE=ON فسيضيف cmake --build -v المعلمة

لا يزال من الجيد الحصول على شيء يمكننا إضافته إلى Ninjafiles. لكن في الوقت الحالي يمكنني التعايش مع الوضع الراهن.

gjasny ، أستخدم CMake 3.10 وعلى الرغم من أنني قمت بتعيين CMakeLists.txt التالي set(CMAKE_VERBOSE_MAKEFILE ON) لا أحصل على أي معلومات إضافية من Ninja.

اي فكرة؟

تحتاج إلى جعله متغير ذاكرة التخزين المؤقت. يرجى مراجعة الأمر CMake set لمعرفة كيفية القيام بذلك.

كمرجع للآخرين ، قام هذا الأمر SET بالعمل وجعل Ninja مطولًا:

set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")

لا يزال من الجيد الحصول على شيء يمكننا إضافته إلى Ninjafiles.

لماذا تحتاج ذلك؟

يرجى إعادة الفتح ، إذا كنت لا تزال تعتقد أن هذا ضروري.

بالنسبة للأشخاص الآخرين الذين قد يكونون قد وصلوا إلى هذا الخطأ: لا يبدو أن set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON") يعمل على Windows. التكاثر:

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)

محتويات simple.cpp لا تهم.

ثم البرنامج النصي الذي أستخدمه لتشغيل 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 .

بالرغم من ذلك ، فإن تمرير -DCMAKE_VERBOSE_MAKEFILE=ON لاستدعاء cmake يعمل.

إضافة set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON" FORCE) لإجبار cmake على ابتلاع الإعداد المناسب لي. ربما عليك أن تتجدد ، رغم ذلك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات