summaryrefslogtreecommitdiff
path: root/scripts
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 /scripts
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 'scripts')
-rwxr-xr-xscripts/maint/gen_ccls_file.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/scripts/maint/gen_ccls_file.sh b/scripts/maint/gen_ccls_file.sh
new file mode 100755
index 0000000000..899e4e9603
--- /dev/null
+++ b/scripts/maint/gen_ccls_file.sh
@@ -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