CMake ve ninja'yı projem için bir yapı sistemi olarak yapılandırmaya çalışıyorum. Uygulamanın kendisi dışında gtest tarafından desteklenen birim testleri için ek bir çalıştırılabilirim var. Her inşa edildiklerinde otomatik olarak idam edilmelerinin iyi olacağını düşündüm. İşte ben yaptım nasıl:GTest'in çıktısı cmake + ninja ile oluşturulduğunda hiçbir renk içermiyor ve otomatik olarak çalıştırılıyor
├── build
└── source
├── CMakeLists.txt
├── main.cc
└── ut
├── CMakeLists.txt
├── gtest
│ ├── ...
└── ut.cc
kaynak/CMakeLists.txt ...
cmake_minimum_required (VERSION 2.6)
project (trial)
add_subdirectory(ut)
add_executable(trial main.cc)
... ve kaynak/ut/CMakeLists.txt: Artık
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}
)
zaman inşa et, yani:
cd build
cmake -GNinja ../source
ninja run_uts
Bu çıktılar dışında iyi çalışıyor renksizdir. İK binary'yi elle çalıştırdığımda, yani build/ut/ut
Güzel yeşil ve kırmızı renkler elde ederim. Unix Makefiles'i CMake için bir sunucu olarak kullandığımda renkler de var.
Sadece CMake öğreniyorum, özlediğim bir şey var mı, yoksa Ninja ile ilgili bir sorun mu var?
Aslında, aslında benim kod çıkışını doğrudan terminale veriyor, ancak tavsiyeniz yine de yardımcı oldu! En iyi tahminim şudur: (bu konuya göre: https://github.com/martine/ninja/issues/174) ninja burada bir boruya koyar. En azından bu, Makefiles ile neden çalıştığını açıklıyor. –