Cmake генерирует проект Xcode из существующих источников

Это то, что у меня есть, когда я начинаю генерировать:

iMac:IXCSoftswitch alex$ /usr/bin/cmake -G Xcode .
-- CMAKE_SOURCE_DIR = /Users/alex/Desktop/ixc-v/IXCSoftswitch,   CMAKE_BINARY_DIR = /Users/alex/Desktop/ixc-v/IXCSoftswitch
CMake Error at CMakeLists.txt:25 (MESSAGE):
  Binary and source directory cannot be the same


-- Configuring incomplete, errors occurred!

Как я могу это исправить? Я новичок в cmake, образцы оценили.

Ответ 1

CMake используется для создания out-of-source.

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

cd IXCSoftswitch
mkdir build
cd build
cmake -G Xcode ..

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

Понятие "исходные сборки" может показаться странным вначале, но на самом деле это очень удобный способ работы после того, как вы привыкнете к нему.

Ответ 2

В корне каталога вашего проекта.

cmake -G Xcode -H. -B_build

Это похоже на ответ выше. Тем не менее, вы вручную управляете построением источника. -B устанавливает ваш целевой каталог сборки (я предпочитаю _build). Я попытался посмотреть вверх -H, чтобы проверить, но не смог найти. Если память используется, она указывает, где живет ваш CMakeLists.txt.

Я сохраняю эту команду в файле .sh/.bat(в зависимости). Таким образом, я могу сохранить свои сценарии, которые строят мой проект в корне, где новый человек может их легко найти.