ladybird/Meta/configure-clangd.sh

51 lines
1.1 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
function usage {
echo "$0 <.clangd file path> [release|debug]"
echo "Update local clangd configuration with the proper"
echo "compilation database according to the selected build type."
}
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "${script_path}/.." || exit 1
# Check if the user has sed.
if ! which sed >/dev/null 2>&1; then
echo "Error: No sed found. Cannot configure .clangd automatically."
exit 1
fi
# Check if the user specified the right number of parameters.
if [ $# -ne 2 ]; then
usage
exit 1
fi
clangd_file_path=$1
if [ ! -f "$clangd_file_path" ]; then
echo "Error: ${clangd_file_path} is not a regular file."
echo
usage
exit 1
fi
build_type=""
case $2 in
Debug)
build_type="-debug"
;;
default)
build_type=""
;;
Sanitizer)
build_type="-sanitizers"
;;
*)
echo "Invalid build configuration specified: $2"
usage
exit 1
esac
sed -i '' "s/\(^[ ]*CompilationDatabase:\).*$/\1 Build\/ladybird${build_type}/" "$clangd_file_path"