diff options
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rwxr-xr-x | cmake/config-ix.cmake | 13 | ||||
-rw-r--r-- | docs/CMake.html | 10 |
3 files changed, 22 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c6036f0..4e48ef6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,6 +70,9 @@ else( MSVC ) CACHE STRING "Semicolon-separated list of targets to build, or \"all\".") endif( MSVC ) +set(LLVM_TARGET_ARCH "host" + CACHE STRING "Set target to use for LLVM JIT or use \"host\" for automatic detection.") + option(LLVM_ENABLE_THREADS "Use threads if available." ON) if( uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" ) diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index 85f9470..5b63778 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -92,13 +92,18 @@ get_target_triple(LLVM_HOSTTRIPLE) message(STATUS "LLVM_HOSTTRIPLE: ${LLVM_HOSTTRIPLE}") # Determine the native architecture. -# FIXME: this will have to change for cross-compiling. -string(REGEX MATCH "^[^-]*" LLVM_NATIVE_ARCH ${LLVM_HOSTTRIPLE}) +string(TOLOWER "${LLVM_TARGET_ARCH}" LLVM_NATIVE_ARCH) +if( LLVM_NATIVE_ARCH STREQUAL "host" ) + string(REGEX MATCH "^[^-]*" LLVM_NATIVE_ARCH ${LLVM_HOSTTRIPLE}) +endif () + if (LLVM_NATIVE_ARCH MATCHES "i[2-6]86") set(LLVM_NATIVE_ARCH X86) -elseif (LLVM_NATIVE_ARCH STREQUAL amd64) +elseif (LLVM_NATIVE_ARCH STREQUAL "x86") + set(LLVM_NATIVE_ARCH X86) +elseif (LLVM_NATIVE_ARCH STREQUAL "amd64") set(LLVM_NATIVE_ARCH X86) -elseif (LLVM_NATIVE_ARCH STREQUAL x86_64) +elseif (LLVM_NATIVE_ARCH STREQUAL "x86_64") set(LLVM_NATIVE_ARCH X86) elseif (LLVM_NATIVE_ARCH MATCHES "sparc") set(LLVM_NATIVE_ARCH Sparc) diff --git a/docs/CMake.html b/docs/CMake.html index 741e8da..25f4710 100644 --- a/docs/CMake.html +++ b/docs/CMake.html @@ -273,6 +273,13 @@ option is available only on some 64-bits unix systems. Defaults to OFF.</dd> + <dt><b>LLVM_TARGET_ARCH</b>:STRING</dt> + <dd>LLVM target to use for native code generation. This is required + for JIT generation. It defaults to "host", meaning that it shall + pick the architecture of the machine where LLVM is being built. If + you are cross-compiling, set it to the target architecture + name.</dd> + <dt><b>LLVM_TABLEGEN</b>:STRING</dt> <dd>Full path to a native TableGen executable (usually named <i>tblgen</i>). This is intented for cross-compiling: if the @@ -311,6 +318,9 @@ <a href="http://www.vtk.org/Wiki/CMake_Cross_Compiling#Information_how_to_set_up_various_cross_compiling_toolchains">this section</a> for a quick solution.</p> +<p>Also see the <a href="#llvmvars">LLVM-specific variables</a> + section for variables used when cross-compiling.</p> + </div> <!-- *********************************************************************** --> |