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>
This commit is contained in:
David Goulet
2020-12-16 10:01:15 -05:00
committed by George Kadianakis
parent 1430d5ff63
commit 8b2d32435d
4 changed files with 41 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
#!/bin/sh
##############################################################################
# THIS MUST BE CALLED FROM THE ROOT DIRECTORY. IT IS USED BY THE MAKEFILE SO #
# IN THEORY, YOU SHOULD NEVER CALL THIS. #
##############################################################################
set -e
CCLS_FILE=".ccls"
# Get all #define *_PRIVATE from our source. We need to list them in our .ccls
# file and enable them otherwise ccls will not find their definition thinking
# that they are dead code.
PRIVATE_DEFS=$(grep -r --include \*.h "_PRIVATE" | grep "#ifdef" | cut -d' ' -f2 | sort | uniq)
echo "clang" > "$CCLS_FILE"
for p in $PRIVATE_DEFS; do
echo "-D$p" >> "$CCLS_FILE"
done