aboutsummaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2020-12-16 10:01:15 -0500
committerGeorge Kadianakis <desnacked@riseup.net>2020-12-16 19:19:12 +0200
commit8b2d32435d626d878ddeb2348262d3efcdae8cbf (patch)
tree770664b24a06807f9f415bacea0fde9ec88cf46e /Makefile.am
parent1430d5ff632f0900545047479a94dbe3417c2e76 (diff)
downloadtor-8b2d32435d626d878ddeb2348262d3efcdae8cbf.tar.gz
tor-8b2d32435d626d878ddeb2348262d3efcdae8cbf.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 6e8ba37e3a..3056b08446 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -725,3 +725,17 @@ show-libs:
show-testing-libs:
@echo src/test/libtor-testing.a
+
+# 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