CMake Zero Check не может обнаружить обновления в файлах CMakeLists.txt для генератора Xcode - PullRequest
0 голосов
/ 10 октября 2018

Фон

У меня большой проект, который отлично работает на Windows.Когда некоторые изменения применяются в CMakeLists.txt и проект создается, проект Visual Studio корректно обновляется.

Версия Xcode: 10.0 (10A255) или 10.1 (10B61) (протестировано на разных компьютерах).

cmake версия: 3.12.2 или 3.13.1

Проблема

Проблема появляется, когда тот же проект построен на Mac OS для Xcode.После настройки cmake:

cmake .. -G Xcode

Сгенерированный проект работает нормально, все собирается правильно и тестирование проходит.

Теперь при изменении файлов CMakeLists.txt (при разработке проекта или при извлечении новых изменений изрепозиторий) и ZERO_CHECK или BUILD_ALL, сборка не приводит к обновлению проекта Xcode.Вызов cmake . также не обнаруживает изменений.

Обходной путь

Лучший найденный мной обходной путь - удаление всего двух файлов: cmake_install.cmake и CMakeCache.txt,Затем выполните команду повторного запуска, которая генерирует проект cmake .. -G Xcode.
. В этом сценарии все обнаружение заново выполняется с нуля, но по крайней мере сборка не начинается с нуля (неизмененные файлы не перекомпилируются).

Это больно, так как много ручного материала должно быть сделано, и проект должен быть воссоздан, и это требует времени.

Подсказки

В каком-то предыдущем проекте у меня была похожая проблема, но это происходило только если mavenобнаруживал обновления для зависимостей, поэтому это случалось довольно редко.Когда это случилось, я просто позвонил touch CMakeLists.txt и собрал снова, и это было нормально.Это решение не применимо, так как каждая сборка имеет эту проблему.

Я подозревал, что с процедурой генерации protobuf что-то связано, но когда я отключил ее, проблема все еще сохраняется.

I 'Мы пытались предоставить полный минимальный пример, создав простой файл проекта, но я не смог воспроизвести проблему.Для всех других проектов это просто работает, поэтому настройка системы не является проблемой.

Вопросы

Как отладить процесс создания проекта при запуске cmake, чтобы найти источник этой проблемы?

Является ли это известной проблемой?

Существует ли лучший обходной путь, который не приведет к полной перестройке восстановлению файла проекта (который также включает определение возможностей системы)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...