def get_tidy_invocation(f, clang_tidy_binary, checks, tmpdir, build_path,
header_filter, allow_enabling_alpha_checkers,
- extra_arg, extra_arg_before, quiet, config,
- line_filter, use_color):
+ extra_arg, extra_arg_before, quiet, config_path,
+ config, line_filter, use_color):
"""Gets a command line for clang-tidy."""
start = [clang_tidy_binary]
if allow_enabling_alpha_checkers:
start.append('-p=' + build_path)
if quiet:
start.append('-quiet')
- if config:
+ if config_path:
+ start.append('--config-file=' + config_path)
+ elif config:
start.append('-config=' + config)
start.append(f)
return start
tmpdir, build_path, args.header_filter,
args.allow_enabling_alpha_checkers,
args.extra_arg, args.extra_arg_before,
- args.quiet, args.config, args.line_filter,
- args.use_color)
+ args.quiet, args.config_path, args.config,
+ args.line_filter, args.use_color)
proc = subprocess.Popen(invocation, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err = proc.communicate()
parser.add_argument('-checks', default=None,
help='checks filter, when not specified, use clang-tidy '
'default')
- parser.add_argument('-config', default=None,
+ config_group = parser.add_mutually_exclusive_group()
+ config_group.add_argument('-config', default=None,
help='Specifies a configuration in YAML/JSON format: '
' -config="{Checks: \'*\', '
' CheckOptions: [{key: x, '
'When the value is empty, clang-tidy will '
'attempt to find a file named .clang-tidy for '
'each source file in its parent directories.')
+ config_group.add_argument('-config-file', default=None,
+ help='Specify the path of .clang-tidy or custom config '
+ 'file: e.g. -config-file=/some/path/myTidyConfigFile. '
+ 'This option internally works exactly the same way as '
+ '-config option after reading specified config file. '
+ 'Use either -config-file or -config, not both.')
parser.add_argument('-header-filter', default=None,
help='regular expression matching the names of the '
'headers to output diagnostics from. Diagnostics from '
None, build_path, args.header_filter,
args.allow_enabling_alpha_checkers,
args.extra_arg, args.extra_arg_before,
- args.quiet, args.config, args.line_filter,
- args.use_color)
+ args.quiet, args.config_path, args.config,
+ args.line_filter, args.use_color)
invocation.append('-list-checks')
invocation.append('-')
if args.quiet: