OSDN Git Service

CMake: GetTargetTriple: new module for determining the target
authorOscar Fuentes <ofv@wanadoo.es>
Sun, 26 Oct 2008 00:47:52 +0000 (00:47 +0000)
committerOscar Fuentes <ofv@wanadoo.es>
Sun, 26 Oct 2008 00:47:52 +0000 (00:47 +0000)
triple. Assign to LLVM_HOSTTRIPLE so it figures in config.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58176 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/config-ix.cmake
cmake/modules/GetTargetTriple.cmake [new file with mode: 0644]
include/llvm/Config/config.h.cmake
tools/llvm-config/CMakeLists.txt

index 58db002..363975d 100755 (executable)
@@ -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 (file)
index 0000000..c915a9a
--- /dev/null
@@ -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 )
index 9d0265a..e5f908a 100644 (file)
 /* 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
 
index 0aac393..b5551bb 100644 (file)
@@ -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)