summaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2020-12-16 10:01:15 -0500
committerDavid Goulet <dgoulet@torproject.org>2021-01-21 16:06:31 -0500
commit8500700aa45722595938ef59935e7efde2b1e9e3 (patch)
tree5799a91583de6b7ad4a171c4b2d1159bc65a3466 /Makefile.am
parentfaf7b550e740642e060518adc6a8624b036ed8e2 (diff)
downloadtor-8500700aa45722595938ef59935e7efde2b1e9e3.tar.gz
tor-8500700aa45722595938ef59935e7efde2b1e9e3.zip
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 <dgoulet@torproject.org>
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am14
1 files changed, 14 insertions, 0 deletions
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