From: Oscar Fuentes Date: Wed, 12 Aug 2009 04:05:26 +0000 (+0000) Subject: CMake: Rely on llvm_config again for obtaining the list of required X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=8e3864f99c65a8f9c7221f732281275f238d71f4;p=oota-llvm.git CMake: Rely on llvm_config again for obtaining the list of required libraries for an executable. Now LLVMConfig uses a new system for sorting library dependencies, as the list of dependent libraries for each entry of FinalLibDeps.txt no longer is topologically sorted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78787 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 660bd70003e..ded77be4232 100755 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -26,7 +26,6 @@ macro(add_llvm_executable name) if( LLVM_LINK_COMPONENTS ) llvm_config(${name} ${LLVM_LINK_COMPONENTS}) endif( LLVM_LINK_COMPONENTS ) - target_link_libraries(${name} ${llvm_libs}) get_system_libs(llvm_system_libs) if( llvm_system_libs ) target_link_libraries(${name} ${llvm_system_libs}) diff --git a/cmake/modules/LLVMConfig.cmake b/cmake/modules/LLVMConfig.cmake index 4196d1c47a8..cfb0db89330 100755 --- a/cmake/modules/LLVMConfig.cmake +++ b/cmake/modules/LLVMConfig.cmake @@ -81,23 +81,24 @@ function(explicit_map_components_to_libraries out_libs) # We must match capitalization. string(TOUPPER "${llvm_libs}" capitalized_libs) list(REMOVE_DUPLICATES expanded_components) - set(curr_idx 0) list(LENGTH expanded_components lst_size) - while( ${curr_idx} LESS ${lst_size} ) - list(GET expanded_components ${curr_idx} c) + set(result "") + while( 0 LESS ${lst_size} ) + list(GET expanded_components 0 c) string(TOUPPER "${c}" capitalized) list(FIND capitalized_libs ${capitalized} idx) if( idx LESS 0 ) message(FATAL_ERROR "Library ${c} not found in list of llvm libraries.") endif( idx LESS 0 ) list(GET llvm_libs ${idx} canonical_lib) + list(REMOVE_ITEM result ${canonical_lib}) list(APPEND result ${canonical_lib}) - list(APPEND result ${MSVC_LIB_DEPS_${canonical_lib}}) + foreach(c ${MSVC_LIB_DEPS_${canonical_lib}}) + list(REMOVE_ITEM expanded_components ${c}) + endforeach() list(APPEND expanded_components ${MSVC_LIB_DEPS_${canonical_lib}}) - list(REMOVE_DUPLICATES expanded_components) + list(REMOVE_AT expanded_components 0) list(LENGTH expanded_components lst_size) - math(EXPR curr_idx "${curr_idx} + 1") - endwhile( ${curr_idx} LESS ${lst_size} ) - list(REMOVE_DUPLICATES result) + endwhile( 0 LESS ${lst_size} ) set(${out_libs} ${result} PARENT_SCOPE) endfunction(explicit_map_components_to_libraries)