有时我会忘记我在build文件夹中,并在根目录中运行该命令。好吧,也许你们中的一些人经历过这会在整个文件层次结构中造成混乱,因为你必须删除CMakeFiles /文件夹,配置文件以及与CPack和CTest相关的文件。有没有办法可以在根目录下的Makefile中添加一些东西来防止我意外地运行cmake?我试图添加目标'cmake',但这不起作用。
AA
更新
我在here发现了同样的问题。我最终采用了在该页面中建议的.bashrc文件中添加一个函数:
function cmake() {
# Don't invoke cmake from the top-of-tree
if [ -e "CMakeLists.txt" ]
then
echo "CMakeLists.txt file present, cowardly refusing to invoke cmake..."
else
/usr/bin/cmake $*
fi
}
答案 0 :(得分:5)
如果源和二进制目录相同,您可以签入CMakeLists.txt
。把这样的东西作为CMakeLists.txt
中的第一件事:
if (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR)
message(FATAL_ERROR "Source and build directories cannot be the same.")
endif()