Для тех, кто в Linux:
добавить в CMakeLists.txt верхнего уровня:
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
создайте файл 'dotme' на верхнем уровне или добавьте в свой .bashrc (глобально):
#!/bin/bash
cmk() { if [ ! -e $1/CMakeLists.txt ] || ! grep -q "set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)" $1/CMakeLists.txt;then /usr/bin/cmake $*;else echo "CMAKE_DISABLE_IN_SOURCE_BUILD ON";fi }
alias cmake=cmk
Теперь запустите:
. ./dotme
при попытке запустить cmake в дереве исходного кода верхнего уровня:
$ cmake .
CMAKE_DISABLE_IN_SOURCE_BUILD ON
Не генерируется CMakeFiles / или CMakeCache.txt.
Когда вы выполняете сборку из исходного кода и вам нужно запустить cmake в первый раз, просто вызовите фактический исполняемый файл:
$ cd build
$ /usr/bin/cmake ..