From 8500700aa45722595938ef59935e7efde2b1e9e3 Mon Sep 17 00:00:00 2001 From: David Goulet Date: Wed, 16 Dec 2020 10:01:15 -0500 Subject: build: Add "make lsp" command Generates the compile_commands.json file using the "bear" application so the ccls server can be more efficient with our code base. Closes #40227 Signed-off-by: David Goulet --- Makefile.am | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am index a868be7362..c7bc514287 100644 --- a/Makefile.am +++ b/Makefile.am @@ -470,3 +470,17 @@ show-libs: show-testing-libs: @echo $(TOR_INTERNAL_TESTING_LIBS) + +# Note here that we hardcode this -j2 because if the user would pass too many +# cores, bear actually chockes and dies :S. For this to work, a make clean +# needs to be done else bear will miss some compile flags. +lsp: + @if test -x "`which bear 2>&1;true`"; then \ + echo "Generating LSP compile_commands.json. Might take few minutes..."; \ + $(MAKE) clean 2>&1 >/dev/null; \ + bear >/dev/null 2>&1 -- $(MAKE) -j2 2>&1 >/dev/null; \ + echo "Generating .ccls file..."; \ + ./scripts/maint/gen_ccls_file.sh \ + else \ + echo "No bear command found. On debian, apt install bear"; \ + fi -- cgit v1.2.3-54-g00ecf