From 304396a8c308e7580ff0c36385a6f2c3477c1554 Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Mon, 13 Jul 2009 21:58:44 +0000 Subject: [PATCH] CMake: Refuses to work for out-of-source builds when tablegenned files are found mixed with the sources. Fixes PR 4522. llvm-svn: 75522 --- llvm/CMakeLists.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 48d0f76f042f..31b1f3063bb0 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -28,6 +28,24 @@ set(LLVM_TOOLS_BINARY_DIR ${LLVM_BINARY_DIR}/bin) set(LLVM_EXAMPLES_BINARY_DIR ${LLVM_BINARY_DIR}/examples) set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" ) +if( NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR ) + file(GLOB_RECURSE + tablegenned_files_on_include_dir + "${LLVM_MAIN_SRC_DIR}/include/llvm/*.gen") + file(GLOB_RECURSE + tablegenned_files_on_lib_dir + "${LLVM_MAIN_SRC_DIR}/lib/Target/*.inc") + if( tablegenned_files_on_include_dir OR tablegenned_files_on_lib_dir) + message(FATAL_ERROR "Apparently there is a previous in-source build, +probably as the result of running `configure' and `make' on +${LLVM_MAIN_SRC_DIR}. +This may cause problems. The suspicious files are: +${tablegenned_files_on_lib_dir} +${tablegenned_files_on_include_dir} +Please clean the source directory.") + endif() +endif() + set(LLVM_ALL_TARGETS Alpha ARM