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