cmake для помещения промежуточных файлов в определенный каталог - PullRequest
3 голосов
/ 10 февраля 2012

Я довольно новичок в cmake и удивляюсь, как я могу это сделать, это cmake. Я хочу поместить все промежуточные файлы (например, файлы .o) в определенный каталог (скажем, «build»), а затем, когда сборка завершена, я хочу скопировать определенные файлы, которые мне нужны (например, .exe,. как конечный продукт) из каталога сборки в каталог «stage». Как я могу указать путь к этим двум каталогам (сборка и этап)? Cmake также проверит, существует каталог build / stage или нет. Если он не существует, он создаст для меня каталоги.

Любая помощь будет оценена.

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

То, что вы спрашиваете, является наиболее частым вариантом использования CMake.

Чтобы весь процесс сборки происходил в произвольном каталоге, вы должны запустить cmake /path/to/your/project из этого каталога (или использовать cmake-gui).

Ваш исходный каталог не будет затронут, пока вы явно не скажете CMake выводить туда некоторые файлы.

Что касается пункта 2:

Вы должны поместить install() вызовы в свои списки CMakeLists.txt (см. документацию по install()) и установите CMAKE_INSTALL_PREFIX в каталог, куда вы хотите скопировать файлы.После этого вы можете запустить make install или cmake -P cmake_install.cmake из каталога сборки, чтобы установить эти файлы.

1 голос
/ 10 февраля 2012

Я бы предложил другой подход.

  1. сделать сборки из исходного кода см. Здесь , так что все ваши сборки находятся в отдельной папке
  2. скопируйте свои исполняемые файлы из каталога сборки в собственную папку с явным копированием см. здесь

Или вместо выбора шага 2 вы также можете предоставить процедуру установки, в которой находятся необходимые исполняемые файлыустановлен в заданном пути. см. Здесь

...