summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Gibbs <andyg1001@hotmail.co.uk>2013-06-26 07:57:53 +0000
committerAndy Gibbs <andyg1001@hotmail.co.uk>2013-06-26 07:57:53 +0000
commit84bb3a2af228e0ee04d4b872cd0760f74253d3a3 (patch)
tree5ef3c1e54d5174cfe44d7507671ecb955dc400b5
parent255aa3c1545889903ccd0408419840782a59471f (diff)
downloadllvm-84bb3a2af228e0ee04d4b872cd0760f74253d3a3.tar.gz
llvm-84bb3a2af228e0ee04d4b872cd0760f74253d3a3.tar.bz2
llvm-84bb3a2af228e0ee04d4b872cd0760f74253d3a3.tar.xz
Support using "host" as a target in LLVM_TARGETS_TO_BUILD when using cmake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184923 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--CMakeLists.txt23
-rwxr-xr-xcmake/config-ix.cmake8
2 files changed, 19 insertions, 12 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b313780a41..895e2f7168 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -137,18 +137,6 @@ set(LLVM_TARGETS_TO_BUILD
${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD})
list(REMOVE_DUPLICATES LLVM_TARGETS_TO_BUILD)
-set(LLVM_ENUM_TARGETS "")
-foreach(c ${LLVM_TARGETS_TO_BUILD})
- list(FIND LLVM_ALL_TARGETS ${c} idx)
- list(FIND LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ${c} idy)
- if( idx LESS 0 AND idy LESS 0 )
- message(FATAL_ERROR "The target `${c}' does not exist.
- It should be one of\n${LLVM_ALL_TARGETS}")
- else()
- set(LLVM_ENUM_TARGETS "${LLVM_ENUM_TARGETS}LLVM_TARGET(${c})\n")
- endif()
-endforeach(c)
-
set(llvm_builded_incs_dir ${LLVM_BINARY_DIR}/include/llvm)
include(AddLLVMDefinitions)
@@ -322,11 +310,22 @@ include(${LLVMBUILDCMAKEFRAG})
# Configure all of the various header file fragments LLVM uses which depend on
# configuration variables.
+set(LLVM_ENUM_TARGETS "")
set(LLVM_ENUM_ASM_PRINTERS "")
set(LLVM_ENUM_ASM_PARSERS "")
set(LLVM_ENUM_DISASSEMBLERS "")
foreach(t ${LLVM_TARGETS_TO_BUILD})
set( td ${LLVM_MAIN_SRC_DIR}/lib/Target/${t} )
+
+ list(FIND LLVM_ALL_TARGETS ${t} idx)
+ list(FIND LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ${t} idy)
+ if( idx LESS 0 AND idy LESS 0 )
+ message(FATAL_ERROR "The target `${t}' does not exist.
+ It should be one of\n${LLVM_ALL_TARGETS}")
+ else()
+ set(LLVM_ENUM_TARGETS "${LLVM_ENUM_TARGETS}LLVM_TARGET(${t})\n")
+ endif()
+
file(GLOB asmp_file "${td}/*AsmPrinter.cpp")
if( asmp_file )
set(LLVM_ENUM_ASM_PRINTERS
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
index 5b6172321d..d0d8531bff 100755
--- a/cmake/config-ix.cmake
+++ b/cmake/config-ix.cmake
@@ -384,6 +384,14 @@ else ()
message(FATAL_ERROR "Unknown architecture ${LLVM_NATIVE_ARCH}")
endif ()
+# If build targets includes "host", then replace with native architecture.
+list(FIND LLVM_TARGETS_TO_BUILD "host" idx)
+if( NOT idx LESS 0 )
+ list(REMOVE_AT LLVM_TARGETS_TO_BUILD ${idx})
+ list(APPEND LLVM_TARGETS_TO_BUILD ${LLVM_NATIVE_ARCH})
+ list(REMOVE_DUPLICATES LLVM_TARGETS_TO_BUILD)
+endif()
+
list(FIND LLVM_TARGETS_TO_BUILD ${LLVM_NATIVE_ARCH} NATIVE_ARCH_IDX)
if (NATIVE_ARCH_IDX EQUAL -1)
message(STATUS