diff options
author | Oscar Fuentes <ofv@wanadoo.es> | 2011-03-23 17:42:13 +0000 |
---|---|---|
committer | Oscar Fuentes <ofv@wanadoo.es> | 2011-03-23 17:42:13 +0000 |
commit | db3480c432bff2be4ab26630343545ba66f00dac (patch) | |
tree | f4b5ba7eaefa78a99c023f35a60ee6b607d74463 /cmake | |
parent | d662576671cba43988ff2753e1d006e50c568241 (diff) | |
download | external_llvm-db3480c432bff2be4ab26630343545ba66f00dac.zip external_llvm-db3480c432bff2be4ab26630343545ba66f00dac.tar.gz external_llvm-db3480c432bff2be4ab26630343545ba66f00dac.tar.bz2 |
Supports building with a list of targets that does not contain
X86. Fixes PR9533.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128154 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
-rwxr-xr-x | cmake/config-ix.cmake | 27 | ||||
-rwxr-xr-x | cmake/modules/LLVMConfig.cmake | 19 |
2 files changed, 24 insertions, 22 deletions
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index e2817f1..c5ec54e 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -321,24 +321,19 @@ elseif (LLVM_NATIVE_ARCH MATCHES "xcore") elseif (LLVM_NATIVE_ARCH MATCHES "msp430") set(LLVM_NATIVE_ARCH MSP430) else () - message(STATUS - "Unknown architecture ${LLVM_NATIVE_ARCH}; lli will not JIT code") - set(LLVM_NATIVE_ARCH) + message(FATAL_ERROR "Unknown architecture ${LLVM_NATIVE_ARCH}") endif () -if (LLVM_NATIVE_ARCH) - list(FIND LLVM_TARGETS_TO_BUILD ${LLVM_NATIVE_ARCH} NATIVE_ARCH_IDX) - if (NATIVE_ARCH_IDX EQUAL -1) - message(STATUS - "Native target ${LLVM_NATIVE_ARCH} is not selected; lli will not JIT code") - set(LLVM_NATIVE_ARCH) - else () - message(STATUS "Native target architecture is ${LLVM_NATIVE_ARCH}") - set(LLVM_NATIVE_TARGET LLVMInitialize${LLVM_NATIVE_ARCH}Target) - set(LLVM_NATIVE_TARGETINFO LLVMInitialize${LLVM_NATIVE_ARCH}TargetInfo) - set(LLVM_NATIVE_ASMPRINTER LLVMInitialize${LLVM_NATIVE_ARCH}AsmPrinter) - endif () -endif() +list(FIND LLVM_TARGETS_TO_BUILD ${LLVM_NATIVE_ARCH} NATIVE_ARCH_IDX) +if (NATIVE_ARCH_IDX EQUAL -1) + message(STATUS + "Native target ${LLVM_NATIVE_ARCH} is not selected; lli will not JIT code") +else () + message(STATUS "Native target architecture is ${LLVM_NATIVE_ARCH}") + set(LLVM_NATIVE_TARGET LLVMInitialize${LLVM_NATIVE_ARCH}Target) + set(LLVM_NATIVE_TARGETINFO LLVMInitialize${LLVM_NATIVE_ARCH}TargetInfo) + set(LLVM_NATIVE_ASMPRINTER LLVMInitialize${LLVM_NATIVE_ARCH}AsmPrinter) +endif () if( MINGW ) set(HAVE_LIBIMAGEHLP 1) diff --git a/cmake/modules/LLVMConfig.cmake b/cmake/modules/LLVMConfig.cmake index ec7831d..fd1cfa8 100755 --- a/cmake/modules/LLVMConfig.cmake +++ b/cmake/modules/LLVMConfig.cmake @@ -64,15 +64,22 @@ function(explicit_map_components_to_libraries out_libs) string(TOUPPER "${llvm_libs}" capitalized_libs) # Expand some keywords: + list(FIND LLVM_TARGETS_TO_BUILD "${LLVM_NATIVE_ARCH}" have_native_backend) list(FIND link_components "engine" engine_required) - if( NOT engine_required STREQUAL "-1" ) - # TODO: as we assume we are on X86, this is `jit'. - list(APPEND link_components "jit") - list(APPEND link_components "native") + if( NOT engine_required EQUAL -1 ) + list(FIND LLVM_TARGETS_WITH_JIT "${LLVM_NATIVE_ARCH}" have_jit) + if( NOT have_native_backend EQUAL -1 AND NOT have_jit EQUAL -1 ) + list(APPEND link_components "jit") + list(APPEND link_components "native") + else() + list(APPEND link_components "interpreter") + endif() endif() list(FIND link_components "native" native_required) - if( NOT native_required STREQUAL "-1" ) - list(APPEND link_components "X86") + if( NOT native_required EQUAL -1 ) + if( NOT have_native_backend EQUAL -1 ) + list(APPEND link_components ${LLVM_NATIVE_ARCH}) + endif() endif() # Translate symbolic component names to real libraries: |