| Message ID | 20250802140649.18734-1-anakin@childerhose.ca |
|---|---|
| State | New |
| Headers | show |
| Series | kernel.bbclass: generate compile_commands.json | expand |
On Sat, Aug 2, 2025 at 11:06 AM Anakin Childerhose via lists.openembedded.org <anakin=childerhose.ca@lists.openembedded.org> wrote: > Add do_generate_compile_commands() task after compiling to have the > clangd language server be configured correctly for the kernel by > default. > > Signed-off-by: Anakin Childerhose <anakin@childerhose.ca> > > Upstream-Status: Pending > What part of this is pending upstream ? > --- > meta/classes-recipe/kernel.bbclass | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/meta/classes-recipe/kernel.bbclass > b/meta/classes-recipe/kernel.bbclass > index eb03424dfc..ef7f00e6dc 100644 > --- a/meta/classes-recipe/kernel.bbclass > +++ b/meta/classes-recipe/kernel.bbclass > @@ -464,6 +464,20 @@ do_compile_kernelmodules() { > } > addtask compile_kernelmodules after do_compile before do_strip > > +do_generate_compile_commands[doc] = "Generate compile_commands.json for > the clangd language server" > +do_generate_compile_commands() { > + if ! [ -f "${S}/scripts/clang-tools/gen_compile_commands.py" ]; > then > + bbwarn "no gen_compile_commands.py script, cannot generate > compile_commands.json" > What if I have no interest in clang, I wouldn't want this to warn if for some reason my kernel doesn't have this support. To me, this should be something that is opt-in via a distro feature (or similar). Bruce > + return > + fi > + > + cd ${B} && ${S}/scripts/clang-tools/gen_compile_commands.py \ > + --output "${S}/compile_commands.json" || { > + bbwarn "failed to generate compile_commands.json" > + } > +} > +addtask generate_compile_commands after do_compile_kernelmodules > + > kernel_do_install() { > # > # First install the modules > -- > 2.50.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#221383): > https://lists.openembedded.org/g/openembedded-core/message/221383 > Mute This Topic: https://lists.openembedded.org/mt/114501421/1050810 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [ > bruce.ashfield@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass index eb03424dfc..ef7f00e6dc 100644 --- a/meta/classes-recipe/kernel.bbclass +++ b/meta/classes-recipe/kernel.bbclass @@ -464,6 +464,20 @@ do_compile_kernelmodules() { } addtask compile_kernelmodules after do_compile before do_strip +do_generate_compile_commands[doc] = "Generate compile_commands.json for the clangd language server" +do_generate_compile_commands() { + if ! [ -f "${S}/scripts/clang-tools/gen_compile_commands.py" ]; then + bbwarn "no gen_compile_commands.py script, cannot generate compile_commands.json" + return + fi + + cd ${B} && ${S}/scripts/clang-tools/gen_compile_commands.py \ + --output "${S}/compile_commands.json" || { + bbwarn "failed to generate compile_commands.json" + } +} +addtask generate_compile_commands after do_compile_kernelmodules + kernel_do_install() { # # First install the modules
Add do_generate_compile_commands() task after compiling to have the clangd language server be configured correctly for the kernel by default. Signed-off-by: Anakin Childerhose <anakin@childerhose.ca> Upstream-Status: Pending --- meta/classes-recipe/kernel.bbclass | 14 ++++++++++++++ 1 file changed, 14 insertions(+) -- 2.50.1