Я начинаю проект инструмента Clang, поэтому я создал LLVM / Clang из исходного кода, используя Cmake и ninja. Есть две папки - src/
и build/
. Затем я создал папку своего проекта как src / tools / clang / tools / extra / my-tool и добавил add_subdirectory(my-tool)
в tools / clang / tools / extra / CMakeLists.txt. . Однако каждый раз, когда я изменяю файл в папке своего проекта и запускаю ninja
в build /, система иногда создает только измененный файл, но иногда перестраивает все файлы (более 3000 задач), что очень медленно. . Мне интересно, что вызывает перестройку?
Кстати, такая же ситуация возникает, когда я модифицирую другой проект, в котором используется система сборки Google Bazel. Я подозреваю, что временная метка файла изменилась случайным образом?