Я рассматриваю возможность переопределения нашей системы сборки (в настоящее время основанной на GNU Make) в CMake.
Отказ от ответственности: это скорее теоретический и "лучший опыт". Я не знаю CMake в глубину. Также, пожалуйста, не стесняйтесь перенести вопрос на программистов, если он больше по теме.
Насколько я понимаю, стандартный рабочий процесс для CMake -
cmake .
make
Я подозреваю, что могут быть проблемы с десинхронизацией файлов CMake и Make файлов.
Итак, во время обычного процесса разработки вы должны запустить make, чтобы избежать ненужных перестроек CMakeCache и Makefiles и, как правило, сделать процесс более прямым. Но тогда, если вы добавите, скажем, новый исходный файл в CMakeLists и запустите make, он будет использовать старые CMakeCache и Makefiles и не будет автоматически обновлять их. Я думаю, что это может вызвать серьезные проблемы при использовании в масштабе, поскольку, если что-то не строится так, как должно, вам нужно попытаться выполнить make clean, тогда, если это не поможет, вам нужно будет удалить CMakeCache и восстановить все (вручную!).
Если я не прав о чем-то из вышеперечисленного, пожалуйста, поправьте меня.
Я хотел бы просто сделать
awesome-cmake
и обновить все, что необходимо для обновления и сборки проекта.
Итак, вопрос: есть ли способ сделать "атомную сборку" с CMake так, чтобы он отслеживал всю необходимую информацию и абстрагировал использование make?
