[libcxx] r229707 - [libcxx] Tired of colorless compile errors? Enable color diagnostics today!

Eric Fiselier eric at efcs.ca
Wed Feb 18 19:19:26 PST 2015


Thanks, my mistake.

On Wed, Feb 18, 2015 at 9:56 PM, Nico Weber <thakis at chromium.org> wrote:
> On Wed, Feb 18, 2015 at 9:39 AM, Eric Fiselier <eric at efcs.ca> wrote:
>>
>> Author: ericwf
>> Date: Wed Feb 18 11:39:45 2015
>> New Revision: 229707
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=229707&view=rev
>> Log:
>> [libcxx] Tired of colorless compile errors? Enable color diagnostics
>> today!
>>
>> Summary:
>> This patch adds a lit option to enable color diagnostics when either
>> `--param=color_diagnostics` is passed to LIT or `LIBCXX_COLOR_DIAGNOSTICS`
>> is present in the environment.
>>
>> My only concern with this patch is that GCC and Clang take different flags
>> and that only GCC 4.9 and greater support `-fdiagnostics-color=always`
>>
>> Does anybody have objections to this going in?
>>
>> Reviewers: jroelofs, danalbert
>>
>> Reviewed By: danalbert
>>
>> Subscribers: cfe-commits
>>
>> Differential Revision: http://reviews.llvm.org/D7729
>>
>> Modified:
>>     libcxx/trunk/test/libcxx/test/config.py
>>     libcxx/trunk/www/lit_usage.html
>>
>> Modified: libcxx/trunk/test/libcxx/test/config.py
>> URL:
>> http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/test/config.py?rev=229707&r1=229706&r2=229707&view=diff
>>
>> ==============================================================================
>> --- libcxx/trunk/test/libcxx/test/config.py (original)
>> +++ libcxx/trunk/test/libcxx/test/config.py Wed Feb 18 11:39:45 2015
>> @@ -91,6 +91,7 @@ class Configuration(object):
>>          self.configure_env()
>>          self.configure_compile_flags()
>>          self.configure_link_flags()
>> +        self.configure_color_diagnostics()
>>          self.configure_debug_mode()
>>          self.configure_warnings()
>>          self.configure_sanitizer()
>> @@ -469,6 +470,25 @@ class Configuration(object):
>>          else:
>>              self.lit_config.fatal("unrecognized system: %r" %
>> target_platform)
>>
>> +    def configure_color_diagnostics(self):
>> +        use_color = self.get_lit_conf('color_diagnostics')
>> +        if use_color is None:
>> +            use_color = os.environ.get('LIBCXX_COLOR_DIAGNOSTICS')
>> +        if use_color is None:
>> +            return
>> +        if use_color != '':
>> +            self.lit_config.fatal('Invalid value for color_diagnostics
>> "%s".'
>> +                                  % use_color)
>> +        cxx_type = self.cxx.type
>> +        if cxx_type is None:
>> +            self.lit_config.warning(
>> +                'Unable to force color output for unknown compiler "%s"'
>> +                % cxx.path)
>> +        elif cxx_type in ['clang', 'apple-clang']:
>> +            self.cxx.flags += ['-fcolor-diagnostics']
>> +        elif cxx_type == 'gcc':
>> +            self.cxx.flags += ['-fdiagnostics-color=always']
>
>
> FYI, clang understands the gcc spelling too (
> http://llvm.org/viewvc/llvm-project?view=revision&revision=179728 ), so
> maybe you can just unconditionally tack on -fdiagnostics-color=always.
>
>>
>> +
>>      def configure_debug_mode(self):
>>          debug_level = self.get_lit_conf('debug_level', None)
>>          if not debug_level:
>>
>> Modified: libcxx/trunk/www/lit_usage.html
>> URL:
>> http://llvm.org/viewvc/llvm-project/libcxx/trunk/www/lit_usage.html?rev=229707&r1=229706&r2=229707&view=diff
>>
>> ==============================================================================
>> --- libcxx/trunk/www/lit_usage.html (original)
>> +++ libcxx/trunk/www/lit_usage.html Wed Feb 18 11:39:45 2015
>> @@ -192,6 +192,16 @@ was given when building libc++ then that
>>  </blockquote>
>>  </p>
>>
>> +<p>
>> +<h3 class="lit-option">color_diagnostics</h3>
>> +<blockquote class="lit-option-desc">
>> +Enable the use of colorized compile diagnostics. If the
>> +<code>color_diagnostics</code> option is specified or the enviroment
>> variable
>> +<code>LIBCXX_COLOR_DIAGNOSTICS</code> is present then color diagnostics
>> will be
>> +enabled.
>> +</blockquote>
>> +</p>
>> +
>>  </div>
>>  </body>
>>  </html>
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>



More information about the cfe-commits mailing list