<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/103499>103499</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            feat: clang-tidy: avoid limits on number of sources by accepting a params file
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          peakschris
      </td>
    </tr>
</table>

<pre>
    On Windows (and possibly other systems), limits on the length of command lines mean that it is not possible to check an entire directory of source files in one invocation.

We are already using config files to pass the compiler args, but there does not appear to be a way to use a config file to pass lists of source files. Using the following, we hit OS limits after around 50 files:

```
clang-tidy <source0> <source1> ... <sourceN> --config=options.txt
```

We would like to be able to use this invocation, where sources.list is a file containing a list of source paths, one per line.

```
clang-tidy @sources.list --config=options.txt
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUk8-uqzYQxp_GbEZBjk1ywoJFek-z7F1U1V0PZgLuMTayh6S8fWXIucmRuuiVEDCG-fP9PhtTsr0nasThN3F4L3DmIcRmIvxIZog2FW3olua7hx_Wd-GeQKgT-g6mkJJt3QKBB4qQlsQ0JqFqob6Bs6PlBMEDDwSOfM8DhCuYMI452VlPCUbC_AMyWAabwAf-LEvAAcxA5gPQA3m2kaCzkQyHuORSKczREFytowTWQ_AE1t-CQbbBl0K-C3ne7j8IMBKgi4TdAnOyvgcT_NX2j3wOMGFK67QmjJN1FAFjn7KYdub8IQ8QaJsSp4kw5rSWAOGOS36fUw5eCv-s62zKOL5OXcJf6yS56TU4F-7W97nhnWCwDN___OSIV17nCbPv4CC3dKHPryLFUT6uNTQOfb9j2y0g9LetrRT692e0z1FZls-VP_LKbrcJEPo9TBllKvkf_s8eP-new-yyqR_0ieThYCbCg00vzqwCV5pb01RmONl-3JiZ4Bmtz2RwBffCbUIeVk-y2xPFdSOV_xNDJb90_AWhRdfortY1FtTs35Q-SqVPqhia66nSpFt9wL05tHtT13W1xzeptam06nRhGyVVJU_7Sip1VKqk9q1DKfGkOyOPJxKVpBGtK527jWWIfWFTmqnZS13VdeGwJZfWw6nUU4xQKh_W2OSsXTv3SVRy3WTPOmzZUXMlZKHP8JKrz4C3YLuXU-rnsaX4BJ2gXQCNoYk3HyaMOKbVoGKOrhmYp3UHqotQl97yMLelCaNQlzzA47GbYvibDAt1WVUloS4PYbdG_RsAAP__b5x4yQ">