निष्पादित किया गया है। मैं अपनी परियोजना के लिए निर्माण प्रणाली के रूप में सीएमके और निंजा को कॉन्फ़िगर करने की कोशिश कर रहा हूं। ऐप को छोड़कर मेरे पास gtest द्वारा संचालित यूनिट परीक्षणों के लिए अतिरिक्त निष्पादन योग्य है। मैंने सोचा कि जब भी वे बनाए जाते हैं तो उन्हें स्वचालित रूप से निष्पादित करना अच्छा लगेगा। यहाँ कैसे मैं इसे बनाया है:सीएमके + निंजा के साथ निर्मित होने पर जीटीएस्ट के आउटपुट में कोई रंग नहीं है और स्वचालित रूप से
├── build
└── source
├── CMakeLists.txt
├── main.cc
└── ut
├── CMakeLists.txt
├── gtest
│ ├── ...
└── ut.cc
स्रोत/CMakeLists.txt ...
cmake_minimum_required (VERSION 2.6)
project (trial)
add_subdirectory(ut)
add_executable(trial main.cc)
... और स्रोत/केन्द्र शासित प्रदेशों/CMakeLists.txt:
add_subdirectory(gtest)
include_directories ("gtest/include")
add_executable(ut ut.cc)
target_link_libraries(ut LINK_PUBLIC gtest_main)
add_custom_target(run_uts
COMMAND ut
DEPENDS ut
WORKING_DIRECTORY ${CMAKE_PROJECT_DIR}
)
अब
जब मैं इसे बनाएं, यानी:
cd build
cmake -GNinja ../source
ninja run_uts
यह आउटपुट को छोड़कर ठीक काम करता है रंगहीन है जब मैं हाथ से बाइनरी चलाता हूं, यानी build/ut/ut
मुझे अच्छा हरा और लाल रंग मिलता है। जब मैं यूनिक्स मेकफ़ाइल का उपयोग सीएमके के लिए जेनरेटर के रूप में करता हूं तो रंग भी होते हैं।
चूंकि मैं केवल सीएमके सीख रहा हूं, क्या मुझे कुछ याद आया है या क्या यह निंजा के साथ एक मुद्दा है?
ठीक है, वास्तव में मेरा कोड सीधे आउटपुट को टर्मिनल पर रखता है, लेकिन आपकी सलाह ने वैसे भी मदद की! मेरा सबसे अच्छा अनुमान यह है कि (इस धागे के अनुसार: https://github.com/martine/ninja/issues/174) निंजा इसे यहां एक पाइप पर रखता है। कम से कम यह बताता है कि यह मेकफ़ाइल के साथ क्यों काम करता है। –