ccache не удаляет кеш без удаления файлов CMake - PullRequest
0 голосов
/ 28 мая 2010

Я пытаюсь использовать ccache с CMake. Я поместил символические ссылки с именами gcc, g++ и c++ в /usr/local/bin. Если я запускаю make, добавьте некоторые изменения в CMakeLists.txt, которые не влияют на скомпилированные файлы (добавьте неиспользуемую библиотеку только для принудительной сборки всех целей) и перезапустите make, все перекомпилируется, как если бы не было CCache. Однако, если я удаляю все сгенерированные CMake файлы и затем вызываю cmake; make, все работает нормально, и объектные файлы извлекаются из кэша, даже если я изменяю CMakeLists.txt.

Похоже, что что-то созданное CMake предотвращает попадание в кеш. Я попытался найти подробный вывод как make, так и cmake, но не смог найти никаких зависимостей, которые могли бы вызвать такое поведение.

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Когда запускается cmake, он помещает полные пути двоичных файлов в CMakeCache.txt. Это оптимизация скорости, поэтому будущие конфигурации будут быстрыми (одна из причин, по которой autoconf занимает так много времени, заключается в том, что он ищет много вещей снова и снова). Если вы хотите принудительно выполнить сканирование cmake, удалите файл CMakeCache.txt или отфильтруйте из этого файла переменные, содержащие пути к инструментам, которые вы хотите обновить.

0 голосов
/ 23 июня 2010

Я предлагаю установить ccache 3.0 (выпущенный всего несколько дней назад) и установить CCACHE_LOGFILE в файл. Затем ccache напечатает, что он делает с этим файлом, и вы, вероятно, получите представление о проблеме.

...