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

    <tr>
        <th>Summary</th>
        <td>
            [clang-include-cleaner][Feature Request] Add an option to wrap extern "C" for certain headers
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          bc-lee
      </td>
    </tr>
</table>

<pre>
    While clang-include-cleaner works fine for me in most cases, some C++-hostile projects (like ffmpeg) require their headers to be wrapped with `extern "C"` to avoid C++ name mangling. When I run clang-include-cleaner on projects that use such headers, I have to manually wrap them with `extern "C"` afterward. It would be helpful if clang-include-cleaner could handle this automatically.

For example, adding an option like `--wrap-extern-c` would allow clang-include-cleaner to wrap specified headers, and it could be used like this:

`$ /path/to/bin/clang-include-cleaner -p cmake-build-debug --edit --wrap-extern-c=libavcodec,libavformat,libavutil ...`

This option would wrap all headers from `libavcodec`, `libavformat`, and `libavutil` with `extern "C"`.

Thanks for reading!

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8lE-PozgQxT-NuZRApICwOXDo7gipr6uV5lzgArxtbMZ_kplvvzJJZjKr6TkA8h_8fu-5bPJezYa5E82raM4ZxbBY1w1jrpmzwcrv3ZdFaYZRk5lzZUYdJeejZjLs4Grdh4dJGYbJOlgZlIHV-gAjefYC38DbleFN4KvA13yxPqTVNmf_5TF4EPiXVh8M07RuPAs8geOvUTmGsLBysDBJdh6ChYHh6mjbWMJVhQXEseRvgZ0BgfgmEMWxTPPoYpV8KIKhlWElM2tl5gK-LGzgHVw0nziy5idcWChA9Aw-jssDJXl6h4UunMRWMpG0_r6jJeb1D3A0BXZXcrKA9wBXG7VMrhbW2xQ1qOkTpnGfuZCROuWiPFAMdqWgxqRdiPIsypfbu7cO-Butm-ZESlIqMwMZsFtQ1sCetjiWeZ6I8xtkPia8GxBpba-fgAR78-k3HtWkWD6HQkaCCnfYgVNw8iaXkEX18owpjqXAGgT2G4VFYB-swH5QRmD_e-18g3GlD86HqLTMJQ9xhjxnqQL830x11mqgy2gljwLf9sZk3Urh0YpBaSiKInE8Yf2Twr0ndYtj90ta_6jEydk1BfikkLy8_ei7C906UyiPgaS55_xZgRS_opBJZ8s6cExpFwUebkOZ7Cp5qk6UcXdosa3xhEfMlk62VdngcWibehplczqc2hrbY3VsJTOXdaY6LLEuT9imp8aiGgY6tFPZNq08VdUg6pJXUrrQ-rIW1s2Z8j5ydziUiE2maWDt98sC0fAV9tFE35wz16Wf8iHOXtSlVj74n8sEFfR-y_x2d0VzFs1rzxSiY_ibv0b2QTRneJHyqXgf9fdrcntGI7tAyjy2KYtOd0sI21542AvsZxWWOBSjXQX2iev-ye_nXWC_u_EC-7vdS4f_BQAA__8w66-0">