2012-03-29 14 views
20

Przy budowie z SCons mogę skonfigurować go do używania szczęk tak:Dlaczego nie clang pokazać kolor wyjściowy pod Scons?

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

Jednak nie wydaje się, aby zachować informacje o kolorze, który dzyń wyjść. Jak mogę zrobić scons zachować kolor?

+0

Masz na myśli: jak zrobić * * scons zachować wyjście w formacie [...]? –

+0

Dotyczy to również gcc z '-fdiagnostics-color = auto' –

Odpowiedz

33

Zgodnie z clang documentation, kolor jest włączony tylko , gdy wykryty zostanie terminal zdolny do zmiany koloru. SCons nie przekazuje automatycznie wszystkich zmiennych środowiskowych do procesu, w którym działa kompilator, przekazałeś je jawnie. A TERM nie jest przekazywane na klang.

Dodaj następujące do SConstruct i kolor powinien działać jeszcze:

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

Dla mnie to nawet nie działa dla prostej make (Makefile generowane przez qmake). Kiedyś pracował wcześniej, nie ma pojęcia, co mogło się zmienić (TERM = xterm):/ – Trass3r

+0

Czy to nadal jest zalecane rozwiązanie? Próbowałem, ale klang nadal nie będzie produkował kolorów z moim terminalem i scons. TERM dla mnie to "xterm-256color". Kiedy próbuję "clang ++ -fcolor-diagnostics", widzę kolor. – jonr

+0

To nadal działa dobrze z clang 3.7 i scons 2.4.1 przy użyciu tych ustawień TERM (działa również z TERM = screen wewnątrz tmux) musi być czymś innym, co powoduje twoje problemy. – richq