Czy istnieje zmienna, której można używać w cmake, aby działał tak, jakby został przekazany jako opcja -q? Byłoby miło, ponieważ mam bardzo modularną konstrukcję, która staje się nieporządna w wynikach cmakes. Używam go w projekcie C++.powiedz cmake, aby był cichy
Odpowiedz
Nie ma żadnej zmiennej, którą znam. Jednakże, można dodać następujące siekać na początku swojego najwyższego poziomu CMakeLists.txt (przed wywołaniem project
) do sterowania wyjściem nieco:
function(message)
list(GET ARGV 0 MessageType)
if(MessageType STREQUAL FATAL_ERROR OR
MessageType STREQUAL SEND_ERROR OR
MessageType STREQUAL WARNING OR
MessageType STREQUAL AUTHOR_WARNING)
list(REMOVE_AT ARGV 0)
_message(${MessageType} "${ARGV}")
endif()
endfunction()
nadpisuje ten CUpewnij wbudowanego polecenia message
i tłumi wszelkie STATUS
i wiadomości bez typu, pozostawiając ważniejsze typy do prawidłowego wyprowadzania.
Dane wyjściowe np. komunikat WARNING
zmieni się z
CMake Warning at CMakeLists.txt:14 (message): This is a dummy warning message.
do
CMake Warning at CMakeLists.txt:8 (_message): This is a dummy warning message. Call Stack (most recent call first): CMakeLists.txt:14 (message)
pamiętać, że rzeczywiste linii, gdzie komunikat został wygenerowany jest wymieniony w stos wywołań zamiast bycia pierwszy wiersz komunikatu wyjściowego.
Ostatecznie nie ma to wpływu na dane wyjściowe podsumowania, które wskazuje na powodzenie lub niepowodzenie próby konfiguracji.
Od wersji cmake 3.1 bardzo przydatne jest ustawienie CMAKE_INSTALL_MESSAGE
. Na przykład set(CMAKE_INSTALL_MESSAGE LAZY)
pominie komunikaty -- Up-to-date:
.
- 1. Jak sprawić, by wget był odpowiednio cichy?
- 2. Powiedz RavenDB, aby zignorować właściwość
- 3. Powiedz programowi Ruby, aby poczekał trochę czasu.
- 4. Powiedz StructureMap, aby użyć określonego konstruktora.
- 5. Powiedz, aby Emacs nigdy nie wstawiał zakładek
- 6. vim autocmd cichy wykonanie
- 7. cichy błąd git/cygwin
- 8. Powiedz Sublime Text, aby zignorować wszystko w .gitignore?
- 9. Powiedz kierowcy Datastax Java Cassandra aby limit czasu połączenia klastra
- 10. Powiedz git, aby nie łączyć plików binarnych, ale wybrać
- 11. Programowo spraw, aby kolor był bardziej przezroczysty.
- 12. Skonfiguruj węzeł, aby był widoczny z zewnątrz?
- 13. Przewiń UITableView, aby nagłówek był niewidoczny.
- 14. Jak sprawić, aby wygląd html był wyłączony?
- 15. jak sprawić, aby mój obraz był klikalny
- 16. css, aby pasek nawigacyjny bootstrap był przezroczysty
- 17. Cichy wydruk osadzonego pliku PDF
- 18. Uzyskiwanie CMake, aby znaleźć flex na Windows
- 19. Powiedz LLVM zawartość optymalizatora zmiennych
- 20. Make Backbone.js Model zmienić "częściowo" cichy?
- 21. cichy druk + określić non-drukarka domyślna
- 22. Jak zmienić klucz podstawowy, aby nie był klastrowany?
- 23. zmieniając Z indeksu znacznika przy aktywowaniu aby był on widoczny
- 24. Jak sprawić, by log Gita nie był wyświetlany, aby kontynuować?
- 25. Domyślny format daty w Railsach (wymagany, aby był ddmmyyyy)
- 26. Dlaczego JSON dopuszcza, aby tylko łańcuch był kluczem?
- 27. Projekt Qt, brak reguły, aby cel był potrzebny przez
- 28. Jak sprawić, aby vim search wrap był bardziej oczywisty?
- 29. Jak sprawić, aby przyjazny identyfikator nie był niewrażliwy?
- 30. Jak skonfigurować projekt C++ na github, aby był przenośny?
Super! Więc mógłbyś zrobić dowolny rodzaj wiadomości, którą chciałeś, co? – alexmherrmann
Czy istnieje sposób na zatrzymanie tego stosu wywołań? Dziękuję za odpowiedź! – alexmherrmann
@alexhairyman Niezupełnie, ale potrzebujesz go do śledzenia rzeczywistego źródła błędu/ostrzeżenia. Jeśli nie chcesz widzieć nawet błędów/ostrzeżeń, zawsze możesz odciąć wszystko wewnątrz ciała 'function', aby' message' stał się no-op. Lub po prostu pozostaw błędy w "if" i ignoruj ostrzeżenia. – Fraser