После сборки в исходном коде, как заставить CMake построить что-то еще? - PullRequest
0 голосов
/ 08 февраля 2019

Предположим, у меня есть проект с именем foo, с источниками в /foo/src.Также предположим, что когда-то в прошлом кто-то запускал cmake /foo/src, поэтому там есть файлы сборки.

Теперь я хочу выполнить сборку foo в /foo/build.Но если я cd /foo/build; cmake /foo/src - он обрабатывает /foo/src как каталог сборки, а также настраивает и генерирует файлы сборки там, а не в текущем каталоге.

Вопросы:

  1. Чтоминимальный набор файлов в /foo/src для удаления, чтобы cmake мог сконфигурировать и сгенерировать файлы сборки в /foo/build?
  2. Могу ли я заставить cmake использовать /foo/build без удаления чего-либо из /foo/src?

1 Ответ

0 голосов
/ 08 февраля 2019

1.Достаточный набор файлов для удаления

Достаточный, хотя, возможно, не минимальный, набор файлов для удаления:

CMakeCache.txt
Makefile
cmake_install.cmake
CMakeFiles/

и, если у вас также включены тесты, то

CTestTestfile.cmake
Testing/
tests/CTestTestfile.cmake
tests/Makefile
tests/cmake_install.cmake
tests/CMakeFiles/

2.Как заставить другое место сборки без удалений:

Если вы выполните

cmake -B/foo/build -H/foo/src

CMake будет игнорировать предыдущую сборку и сборку в /foo/build.Вам не нужно, чтобы он был вашим текущим рабочим каталогом при вводе этой команды.

Вторую часть этого ответа можно найти в этом ответе

...