Непонятно, чего именно вы хотите добиться. В предоставленной вами ссылке автор собирает LLVM из исходного кода, поэтому база данных компиляции (compile_commands.json
) ссылается на эти источники.
Как правило, для создания базы данных компиляции при построении исходного дерева с помощью CMake вы указываете для нее флаг -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
.
Итак, где сообщение в блоге, на которое вы ссылаетесь, вызывает
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON path/to/llvm/sources
... вы бы заменили путь к исходникам на собственное дерево исходников:
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON this/is/my/source/tree/path
... который должен сгенерировать json-файл в текущем (сборочном) каталоге. Как и в статье, вы, вероятно, захотите связать этот файл с корнем дерева исходных текстов, а затем запустить оттуда свои инструменты.
Вот (очень) простой скрипт сборки, который я написал и иногда использую. Может быть, это может быть полезно для вас (очевидно, приспособьтесь к своим потребностям). Его следует запускать из корня исходного дерева.
#!/usr/bin/env sh
type=Debug
if ! [[ -z "$1" ]]; then
type="$1"
mkdir -p build/$type
shift
fi
# Configure build
cmake -S . -B build/$type -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=$type .
# Build
cmake --build build/$type --parallel 4 --config $type "$@"
ln -fs build/$type/compile_commands.json .
person
Paw
schedule
26.01.2021