Правильный способ получить сборку из исходного кода в многокомпонентном проекте cmake - PullRequest
3 голосов
/ 05 августа 2009

Я использую cmake для сборки, тестирования и установки моего проекта. Мой путь немного груб: я использую такие сценарии, чтобы получить сборку из исходного кода:

DIR=debug_build &&
rm -fr ./${DIR} &&
mkdir -p ${DIR} &&
cd ${DIR} &&
cmake -D CMAKE_BUILD_TYPE=Debug $@ .. &&
make 

Думаю, я мог бы по крайней мере поместить его в make-файл, но не странно ли использовать Makefile для запуска cmake для генерации новых Make-файлов и запуска другого make?

Как правильно это сделать? У cmake есть возможность избежать вызова "cd"?

В последнее время это стало еще сложнее, так как я вычеркнул библиотеку, которую я хотел бы компилировать, тестировать и распространять отдельно. Я хочу избежать дублирования всего, что у меня есть в моем топовом CMakeLists.txt.

Как правильно сделать это с помощью cmake?

Ответы [ 3 ]

1 голос
/ 05 августа 2009

Нет, CMake не имеет такой опции. Мне обычно нравится иметь Makefile-обертку для управления вызовами CMake.

Основная проблема заключается в том, что генератор Makefile не поддерживает указание конфигурации при запуске make, как это делает генератор Visual Studio. Я думаю, что для этого подан запрос на добавление функции, но это было бы очень инвазивной процедурой для исправления.

1 голос
/ 05 августа 2009

Это, кажется, самая распространенная форма обращения с этим. Я обычно видел (и использовал) пакетные сценарии (либо сценарии оболочки в Unix, либо просто пакетные файлы в Windows), чтобы справиться с этим, поэтому при запуске ./build создаст папку сборки, CD там, запустит cmake, build, а затем вернуться в исходную папку.

0 голосов
/ 06 мая 2010

Можно также использовать CMake GUI, который автоматически создаст папку сборки, если она не существует.

...