Это больше вопрос о make-файлах, которые создает CMake, и о том, как они работают. Именно эти make-файлы делают такие вещи, как отслеживание завершенного процента и т. Д. c., А не make
. Вполне возможно, что, запустив вторую сборку в том же каталоге, вы испортили все средства, используемые make-файлами CMake для отслеживания прогресса.
Короткий ответ: нет, невозможно, чтобы один вызов make каким-то образом "захватит" или объединит другой вызов make. Что касается программы make, то они ничего не знают друг о друге. Однако, поскольку оба работают в одной и той же файловой системе, если один make записывает файлы таким образом, который может сбить с толку другой make, вы можете увидеть странное поведение.
Сгенерированные cmake make-файлы очень сложны очень ; Я никогда не пытался полностью понять, как они работают. Мне всегда было жаль, что никто не пытался реализовать генератор CMake GNU Makefile
в дополнение к генератору Unix Makefiles
, который в полной мере использовал возможности GNU make. Я уверен, что результаты будут легче читать и, вероятно, быстрее. Но кажется маловероятным, что это когда-либо случится; Пользователи CMake, которые больше заботятся о скорости, чем о переносимости, вероятно, просто переключаются на использование Ninja
в качестве генератора.