diff options
author | Oscar Fuentes <ofv@wanadoo.es> | 2008-11-15 22:51:03 +0000 |
---|---|---|
committer | Oscar Fuentes <ofv@wanadoo.es> | 2008-11-15 22:51:03 +0000 |
commit | 7f6f21ebaec41354c20b241483adc45def794db4 (patch) | |
tree | 8caef63fe329039f17f36cab9193f37fb47e52df /cmake | |
parent | 92adc19be95347225f713db8cc1b5e22ac08bb5e (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-x | cmake/modules/LLVMConfig.cmake | 37 |
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) |