From 777a0080cbdb98761853519b3f45136727a855c2 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Sat, 15 Apr 2017 06:55:46 +0300 Subject: [PATCH] cmake: disallow in-source builds --- CMakeLists.txt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f2ceb9184a6..084399f3a045 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,11 +4,16 @@ # From the off-tree build directory, invoke: # $ cmake # -# -# - OCT-2008: Initial version -# # ---------------------------------------------------------------------------- +# Disable in-source builds to prevent source tree corruption. +if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}") + message(FATAL_ERROR " +FATAL: In-source builds are not allowed. + You should create separate directory for build files. +") +endif() + set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) # Following block can broke build in case of cross-compilng @@ -1094,13 +1099,6 @@ status("") ocv_finalize_status() -# ---------------------------------------------------------------------------- -# Warn in the case of in-source build -# ---------------------------------------------------------------------------- -if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") - message(WARNING "The source directory is the same as binary directory. \"make clean\" may damage the source tree") -endif() - # ---------------------------------------------------------------------------- # CPack stuff # ----------------------------------------------------------------------------