Я хочу запретить людям загромождать наше исходное дерево сгенерированными файлами CMake... и, что более важно, запретить им переходить на существующие Makefiles
, которые не являются частью одного и того же процесса сборки, с которым мы используем CMake. (лучше не спрашивать)
То, как я это сделал, состоит в том, чтобы иметь несколько строк в верхней части моего CMakeLists.txt
, как показано ниже:
if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
message(SEND_ERROR "In-source builds are not allowed.")
endif("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
Однако делать это так кажется слишком многословным. Кроме того, если я пытаюсь создать исходный код, он все равно создает каталог CMakeFiles/
и файл CMakeCache.txt
в исходном дереве до появления ошибки.
Я пропустил лучший способ сделать это?