summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcmake/config-ix.cmake4
-rw-r--r--cmake/modules/GetTargetTriple.cmake19
-rw-r--r--include/llvm/Config/config.h.cmake3
-rw-r--r--tools/llvm-config/CMakeLists.txt15
4 files changed, 30 insertions, 11 deletions
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
index 58db002d79..363975d19a 100755
--- a/cmake/config-ix.cmake
+++ b/cmake/config-ix.cmake
@@ -52,6 +52,10 @@ check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO)
check_symbol_exists(pthread_mutex_lock pthread.h HAVE_PTHREAD_MUTEX_LOCK)
check_symbol_exists(strtoll stdlib.h HAVE_STRTOLL)
+include(GetTargetTriple)
+get_target_triple(LLVM_HOSTTRIPLE)
+message(STATUS "LLVM_HOSTTRIPLE: ${LLVM_HOSTTRIPLE}")
+
if( MINGW )
# tbi: Comprobar que existen las librerias:
set(HAVE_LIBIMAGEHLP 1)
diff --git a/cmake/modules/GetTargetTriple.cmake b/cmake/modules/GetTargetTriple.cmake
new file mode 100644
index 0000000000..c915a9a6ae
--- /dev/null
+++ b/cmake/modules/GetTargetTriple.cmake
@@ -0,0 +1,19 @@
+# Returns the host triple.
+# Invokes config.guess
+
+function( get_target_triple var )
+ if( MSVC )
+ set( ${var} "i686-pc-win32" PARENT_SCOPE )
+ else( MSVC )
+ set(config_guess ${LLVM_MAIN_SRC_DIR}/autoconf/config.guess)
+ execute_process(COMMAND sh ${config_guess}
+ RESULT_VARIABLE TT_RV
+ OUTPUT_VARIABLE TT_OUT
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if( NOT TT_RV EQUAL 0 )
+ message(FATAL_ERROR "Failed to execute ${config_guess}")
+ endif( NOT TT_RV EQUAL 0 )
+ set( ${var} ${TT_OUT} PARENT_SCOPE )
+ message(STATUS "Target triple: ${${var}}")
+ endif( MSVC )
+endfunction( get_target_triple var )
diff --git a/include/llvm/Config/config.h.cmake b/include/llvm/Config/config.h.cmake
index 9d0265a551..e5f908ae08 100644
--- a/include/llvm/Config/config.h.cmake
+++ b/include/llvm/Config/config.h.cmake
@@ -440,6 +440,9 @@
/* Installation directory for config files */
#undef LLVM_ETCDIR
+/* Host triple we were built on */
+#cmakedefine LLVM_HOSTTRIPLE "${LLVM_HOSTTRIPLE}"
+
/* Installation directory for include files */
#undef LLVM_INCLUDEDIR
diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt
index 0aac393b92..b5551bb132 100644
--- a/tools/llvm-config/CMakeLists.txt
+++ b/tools/llvm-config/CMakeLists.txt
@@ -29,17 +29,10 @@ set(SHLIBEXT ${LTDL_SHLIB_EXT})
#EXEEXT already set.
set(OS "${CMAKE_SYSTEM}")
set(ARCH "X86") # TODO: This gives "i686" in Linux: "${CMAKE_SYSTEM_PROCESSOR}")
-# TODO: avoid using autoconf:
-set(config_guess ${LLVM_MAIN_SRC_DIR}/autoconf/config.guess)
-execute_process(COMMAND sh ${config_guess}
- RESULT_VARIABLE TT_RV
- OUTPUT_VARIABLE LLVM_TARGET_TRIPLET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-message(STATUS "Target triplet: ${LLVM_TARGET_TRIPLET}")
-if( NOT TT_RV EQUAL 0 )
- message(FATAL_ERROR "Failed to execute ${config_guess}")
-endif( NOT TT_RV EQUAL 0 )
-set(target ${LLVM_TARGET_TRIPLET})
+
+include(GetTargetTriple)
+get_target_triple(target)
+
foreach(c ${LLVM_TARGETS_TO_BUILD})
set(TARGETS_BUILT "${TARGETS_BUILT} ${c}")
endforeach(c)