From 906dad8bb398028c9053889bcac2a279904fdb8b Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Tue, 4 Feb 2014 14:42:04 +0000 Subject: [PATCH] [CMake] LLVM-Config.cmake: Split explicit_map_components_to_libraries and introduce llvm_map_components_to_libnames and llvm_expand_dependencies. llvm-svn: 200764 --- llvm/cmake/modules/LLVM-Config.cmake | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/llvm/cmake/modules/LLVM-Config.cmake b/llvm/cmake/modules/LLVM-Config.cmake index 63f92aea01c5..ef13ef3364ae 100644 --- a/llvm/cmake/modules/LLVM-Config.cmake +++ b/llvm/cmake/modules/LLVM-Config.cmake @@ -74,8 +74,8 @@ function(llvm_map_components_to_libraries OUT_VAR) set( ${OUT_VAR} ${result} ${sys_result} PARENT_SCOPE ) endfunction(llvm_map_components_to_libraries) - -function(explicit_map_components_to_libraries out_libs) +# Map LINK_COMPONENTS to actual libnames. +function(llvm_map_components_to_libnames out_libs) set( link_components ${ARGN} ) get_property(llvm_libs GLOBAL PROPERTY LLVM_LIBS) string(TOUPPER "${llvm_libs}" capitalized_libs) @@ -157,7 +157,13 @@ function(explicit_map_components_to_libraries out_libs) endif( lib_idx LESS 0 ) endif( NOT idx LESS 0 ) endforeach(c) - # Expand dependencies while topologically sorting the list of libraries: + + set(${out_libs} ${expanded_components} PARENT_SCOPE) +endfunction() + +# Expand dependencies while topologically sorting the list of libraries: +function(llvm_expand_dependencies out_libs) + set(expanded_components ${ARGN}) list(LENGTH expanded_components lst_size) set(cursor 0) set(processed) @@ -177,6 +183,13 @@ function(explicit_map_components_to_libraries out_libs) list(LENGTH processed cursor) list(LENGTH expanded_components lst_size) endwhile( cursor LESS lst_size ) + set(${out_libs} ${expanded_components} PARENT_SCOPE) +endfunction() + +function(explicit_map_components_to_libraries out_libs) + llvm_map_components_to_libnames(link_libs ${ARGN}) + llvm_expand_dependencies(expanded_components ${link_libs}) + get_property(llvm_libs GLOBAL PROPERTY LLVM_LIBS) # Return just the libraries included in this build: set(result) foreach(c ${expanded_components})