File indexing completed on 2024-05-19 05:42:06

0001 #!/bin/bash
0002 
0003 FIRST_ARG="$1"
0004 BDE_BUILD_DIR="$1"
0005 DATABASE_PATH="$2"
0006 
0007 print_usage()
0008 {
0009     echo "$0 <BDE_BUILD_DIR> <DATABASE_PATH>"
0010     echo \
0011 "Looking in BDE_BUILD_DIR for compile_commands.json to specify input files, create a new database at DATABASE_PATH"
0012     echo \
0013 "To generate compile_commands.json, run clang with -DCMAKE_COMPILE_COMMANDS=ON"
0014 }
0015 
0016 assert_directory()
0017 {
0018     declare -r DIR="$1"
0019 
0020     if [ -z "$DIR" ] || ! [ -d "$DIR" ]; then
0021         echo "'$DIR' is not a directory" 1>&2
0022         echo
0023         print_usage 1>&2
0024         exit 22 # EINVAL
0025     fi
0026 }
0027 
0028 check_args()
0029 {
0030     if [ "$FIRST_ARG" == "--help" ] || [ "$FIRST_ARG" == "-h" ]; then
0031         print_usage
0032         exit 0
0033     fi
0034 
0035     assert_directory "$BDE_BUILD_DIR"
0036 
0037     # dirname doesn't handle empty arguments
0038     if [ -z "$DATABASE_PATH" ]; then
0039         echo "Please specify DATABASE_PATH" 1>&2
0040         echo 1>&2
0041         print_usage 1>&2
0042         exit 22 # EINVAL
0043     fi
0044 
0045     assert_directory "$(dirname "$DATABASE_PATH")"
0046 }
0047 
0048 check_args
0049 
0050 PARSER_EXECUTABLE="@INSTALL_DIR@/create_codebase_db"
0051 
0052 "$PARSER_EXECUTABLE" --overwrite \
0053     --ignore "*.t.cpp" \
0054     --ignore "*thirdparty*" \
0055     -j"$(nproc)" \
0056     "$DATABASE_PATH" \
0057     "$BDE_BUILD_DIR/compile_commands.json"