Мой проект построен с использованием CMake и скомпилирован с DistCC + GCC. настроить компилятор следующим образом:DistCC и CMake - выбор между локальной и распределенной сборкой при запуске make
SET(CMAKE_C_COMPILER "distcc variation-of-gcc")
Чтобы построить проект, я просто запустить «CMake», а затем 'делают -jXX.
Хотя distcc действительно ускоряет работу, я иногда хочу строить без распространения - я хочу, чтобы он локально строился на машине.
Я знаю, что могу модифицировать DISTCC_HOSTS, чтобы включить только localhost, но это все еще имеет накладные расходы на distcc-сети, хотя это, если быстрее, чем накладные расходы для других машин ... Я также могу сделать это, повторно перезапустив cmake и изменив CMAKE_C_COMPILER с использованием флагов настройки.
Но я ищу способ сделать это, просто добавив флаг непосредственно к «make».
i.e.
# this will use distcc:
make -jXX ...
# this will run locally:
make LOCAL_BUILD=1 -jX ...
Есть ли трюк CMake, который я могу использовать? Может ли кто-нибудь помочь?
Спасибо! Офер
Я не знаю, CMake на всех, но это палка компилятор, выбранный с помощью 'CMAKE_C_COMPILER' в Makefile переменную и использовать ее в самом файле makefile? Или он вставляет фактическое имя компилятора во все сгенерированные make-файлы? –
Я считаю, что он вставляет фиксированную строку внутри Makefile в нескольких местах. Поэтому это не просто переопределить. – oferlivny
Чем больше я узнаю о cmake, тем меньше мне это нравится. Вы можете написать свой собственный скрипт и использовать его в качестве компилятора и реагировать на присутствие LOCAL_BUILD или любой другой переменной, чтобы выбрать, какой компилятор использовать. –