diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2010-04-17 20:12:02 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2010-04-17 20:12:02 +0000 |
commit | 13bca6cd5a6b5e989a469ec1687b42a5c7008895 (patch) | |
tree | e9dde5614c9fd96c57b4772f836faf4b74fb11d3 | |
parent | 0b685eb778712db4f06da739401e739e96c40554 (diff) | |
download | bcm5719-llvm-13bca6cd5a6b5e989a469ec1687b42a5c7008895.tar.gz bcm5719-llvm-13bca6cd5a6b5e989a469ec1687b42a5c7008895.zip |
Prevent accidental in-source builds with CMake, and detect when there are
generated files from a previous in-source builds.
llvm-svn: 101665
-rw-r--r-- | clang/CMakeLists.txt | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index 2001c7125d9..e91fb43f348 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -8,6 +8,26 @@ configure_file( set(CLANG_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(CLANG_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) +if( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT MSVC_IDE ) + message(FATAL_ERROR "In-source builds are not allowed. CMake would overwrite " +"the makefiles distributed with LLVM. Please create a directory and run cmake " +"from there, passing the path to this source directory as the last argument. " +"This process created the file `CMakeCache.txt' and the directory " +"`CMakeFiles'. Please delete them.") +endif() + +if( NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR ) + file(GLOB_RECURSE + tablegenned_files_on_include_dir + "${CLANG_SOURCE_DIR}/include/clang/*.inc") + if( tablegenned_files_on_include_dir ) + message(FATAL_ERROR "Apparently there is a previous in-source build, " +"probably as the result of running `configure' and `make' on " +"${CLANG_SOURCE_DIR}. This may cause problems. The suspicious files are:\n" +"${tablegenned_files_on_include_dir}\nPlease clean the source directory.") + endif() +endif() + # Compute the Clang version from the contents of VER file(READ ${CMAKE_CURRENT_SOURCE_DIR}/VER CLANG_VERSION_DATA) string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION |