2012-03-29 3 views
20

Wenn mit Scons Aufbau, kann ich so konfiguriert, dass Klappern verwenden wie so:Warum zeigt clang nicht die Farbausgabe unter Scons?

env["CXX"] = "clang++" 

Es ist jedoch nicht die Farbinformationen, die Ausgänge scheint zu erhalten klirren. Wie kann ich Scons die Farbe erhalten lassen?

+0

Sie meinen: wie machen Sie * scons * erhalten das Format Ausgang [...]? –

+0

Dies gilt auch für gcc mit '-fdiagnostics-color = auto' –

Antwort

33

Gemäß der clang documentation ist die Farbe nur aktiviert, wenn ein farbfähiges Terminal erkannt wird. SCons gibt nicht automatisch alle Umgebungsvariablen an den Prozess weiter, der den Compiler ausführt, Sie haben sie explizit übergeben. Und TERM wird nicht an Klänge weitergegeben.

Fügen Sie folgendes zu Ihrem SConstruct und Farbe sollte wieder funktionieren:

import os 
env['ENV']['TERM'] = os.environ['TERM'] 
+0

Für mich funktioniert es sogar nicht für einfache make (Makefile von qmake generiert). Früher hat es funktioniert, keine Ahnung was sich hätte ändern können (TERM = xterm):/ – Trass3r

+0

Ist das immer noch die empfohlene Lösung? Ich habe es ausprobiert, aber der Klang erzeugt immer noch keine Farbe mit meinem Terminal und den Scons. TERM für mich ist 'xterm-256color'. Wenn ich 'clang ++ -fcolor-diagnostics' versuche, sehe ich Farbe. – jonr

+0

Dies funktioniert immer noch gut mit clang 3.7 und scons 2.4.1 mit diesen TERM-Einstellungen (funktioniert auch mit TERM = Bildschirm in tmux) muss etwas sein, das Ihre Probleme verursacht. – richq

Verwandte Themen