[CMake] Allow parent projects to use in-source builds

LLVM checks if it is performing an in-source build and then stop the
build. However, this check is also triggered if LLVM is being build as
part of a parent project, which prevents the parent project itself from
using in-source builds. For example, CMake allows a parent project to
specify the output of its subproject:

add_subdirectory(llvm llvm_build)

This tells CMake to conduct an out-tree build of LLVM, which without
this patch will still fails because what is being tested is the parent
project, not LLVM. This is fixed by using the "CURRENT" variable, which
is only concerned by the CMakeLists that is actually bein processed at
the moment.

Tests:
Ran `make check-llvm`.

Patch by Henrique Jung <henriquenj_AT_gmail_DOT_com>

llvm-svn: 316142
This commit is contained in:
Chris Bieneman 2017-10-19 00:43:48 +00:00
parent f1c5f8681a
commit 73a2505e62

View File

@ -241,7 +241,7 @@ include(CPack)
# sure that we don't have any stray generated files lying around in the tree # sure that we don't have any stray generated files lying around in the tree
# (which would end up getting picked up by header search, instead of the correct # (which would end up getting picked up by header search, instead of the correct
# versions). # versions).
if( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT MSVC_IDE ) if( CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR AND NOT MSVC_IDE )
message(FATAL_ERROR "In-source builds are not allowed. message(FATAL_ERROR "In-source builds are not allowed.
CMake would overwrite the makefiles distributed with LLVM. CMake would overwrite the makefiles distributed with LLVM.
Please create a directory and run cmake from there, passing the path Please create a directory and run cmake from there, passing the path