aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorOscar Fuentes <ofv@wanadoo.es>2008-11-15 22:51:03 +0000
committerOscar Fuentes <ofv@wanadoo.es>2008-11-15 22:51:03 +0000
commit7f6f21ebaec41354c20b241483adc45def794db4 (patch)
tree8caef63fe329039f17f36cab9193f37fb47e52df /cmake
parent92adc19be95347225f713db8cc1b5e22ac08bb5e (diff)
CMake: Forces linking of the rest of architecture targets and its
respective asm printers on MSVC. Based on a patch by Scott Graham. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59379 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
-rwxr-xr-xcmake/modules/LLVMConfig.cmake37
1 files changed, 27 insertions, 10 deletions
diff --git a/cmake/modules/LLVMConfig.cmake b/cmake/modules/LLVMConfig.cmake
index 813c0f0d50..3d5e3bc55a 100755
--- a/cmake/modules/LLVMConfig.cmake
+++ b/cmake/modules/LLVMConfig.cmake
@@ -10,19 +10,40 @@ endmacro(llvm_config executable link_components)
function(msvc_llvm_config executable link_components)
foreach(c ${link_components})
if( c STREQUAL "jit" )
- set_target_properties(${executable}
- PROPERTIES
- LINK_FLAGS "/INCLUDE:_X86TargetMachineModule")
+ set(lfgs "${lfgs} /INCLUDE:_X86TargetMachineModule")
endif( c STREQUAL "jit" )
+ list(FIND LLVM_TARGETS_TO_BUILD ${c} idx)
+ if( NOT idx LESS 0 )
+ set(lfgs "${lfgs} /INCLUDE:_${c}TargetMachineModule")
+ list(FIND LLVM_ASMPRINTERS_FORCE_LINK ${c} idx)
+ if( NOT idx LESS 0 )
+ set(lfgs "${lfgs} /INCLUDE:_${c}AsmPrinterForceLink")
+ endif()
+ endif()
endforeach(c)
+
msvc_map_components_to_libraries(${link_components} LIBRARIES)
target_link_libraries(${executable} ${LIBRARIES})
+
+ if( lfgs )
+ set_target_properties(${executable}
+ PROPERTIES
+ LINK_FLAGS ${lfgs})
+ endif()
endfunction(msvc_llvm_config executable link_components)
function(msvc_map_components_to_libraries link_components out_libs)
foreach(c ${link_components})
- if( c STREQUAL "native" )
+ # add codegen/asmprinter
+ list(FIND LLVM_TARGETS_TO_BUILD ${c} idx)
+ if( NOT idx LESS 0 )
+ list(APPEND expanded_components "LLVM${c}CodeGen")
+ list(FIND llvm_libs "LLVM${c}AsmPrinter" asmidx)
+ if( NOT asmidx LESS 0 )
+ list(APPEND expanded_components "LLVM${c}AsmPrinter")
+ endif()
+ elseif( c STREQUAL "native" )
# TODO: we assume ARCH is X86. In this case, we must use nativecodegen
# component instead. Do nothing, as in llvm-config script.
elseif( c STREQUAL "nativecodegen" )
@@ -33,15 +54,11 @@ function(msvc_map_components_to_libraries link_components out_libs)
elseif( c STREQUAL "engine" )
# TODO: as we assume we are on X86, this is `jit'.
list(APPEND expanded_components "LLVMJIT")
- elseif( c STREQUAL "X86" )
- # TODO: we assume we are on X86.
- list(APPEND expanded_components "LLVMX86CodeGen")
- list(APPEND expanded_components "LLVMX86AsmPrinter")
elseif( c STREQUAL "all" )
list(APPEND expanded_components ${llvm_libs})
- else( c STREQUAL "native" )
+ else( NOT idx LESS 0 )
list(APPEND expanded_components LLVM${c})
- endif( c STREQUAL "native" )
+ endif( NOT idx LESS 0 )
endforeach(c)
# We must match capitalization.
string(TOUPPER "${llvm_libs}" capitalized_libs)