From: Alp Toker Date: Tue, 15 Jul 2014 21:04:12 +0000 (+0000) Subject: CMake: fix cross-compilation with external source directories X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a507bb590355e6935fac6e902609b46ad52be11c;p=platform%2Fupstream%2Fllvm.git CMake: fix cross-compilation with external source directories This adds support for building native artifacts when cross-compiling using the popular side-by-side source directory layout (no symlinks, no nested repositories). llvm-svn: 213091 --- diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake index 34b0343..e46b4ae 100644 --- a/llvm/cmake/modules/TableGen.cmake +++ b/llvm/cmake/modules/TableGen.cmake @@ -77,9 +77,19 @@ if(CMAKE_CROSSCOMPILING) COMMAND ${CMAKE_COMMAND} -E make_directory ${CX_NATIVE_TG_DIR} COMMENT "Creating ${CX_NATIVE_TG_DIR}...") + # Forward a subset of configure options to discover additional tablegen modules. + get_cmake_property(_variableNames CACHE_VARIABLES) + foreach (_variableName ${_variableNames}) + if (_variableName MATCHES "^(LLVM_EXTERNAL_.*_SOURCE_DIR)$") + list(APPEND CX_CMAKE_ARGUMENTS "-D${_variableName}=\"${${_variableName}}\"") + endif () + endforeach() + add_custom_command(OUTPUT ${CX_NATIVE_TG_DIR}/CMakeCache.txt + # Remove the old cache to avoid persisting previous flags. + COMMAND ${CMAKE_COMMAND} -E remove ${CX_NATIVE_TG_DIR}/CMakeCache.txt COMMAND ${CMAKE_COMMAND} -UMAKE_TOOLCHAIN_FILE -DCMAKE_BUILD_TYPE=Release - -DLLVM_BUILD_POLLY=OFF + -DLLVM_BUILD_POLLY=OFF ${CX_CMAKE_ARGUMENTS} -G "${CMAKE_GENERATOR}" ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CX_NATIVE_TG_DIR} DEPENDS ${CX_NATIVE_TG_DIR}