2020-12-16 16:01:15 +01:00
|
|
|
#!/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"
|
2021-04-12 18:55:52 +02:00
|
|
|
|
|
|
|
# Add these include so the ccls server can properly check new files that are
|
|
|
|
# not in the compile_commands.json yet
|
|
|
|
{
|
2021-09-07 23:44:44 +02:00
|
|
|
echo "-I."
|
|
|
|
echo "-I./src"
|
|
|
|
echo "-I./src/ext"
|
|
|
|
echo "-I./src/ext/trunnel"
|
2021-04-12 18:55:52 +02:00
|
|
|
} >> "$CCLS_FILE"
|
|
|
|
|
|
|
|
# Add all defines (-D).
|
2020-12-16 16:01:15 +01:00
|
|
|
for p in $PRIVATE_DEFS; do
|
2021-09-07 23:44:44 +02:00
|
|
|
echo "-D$p" >> "$CCLS_FILE"
|
2020-12-16 16:01:15 +01:00
|
|
|
done
|