[cmake] Update creation of object library dependencies for LINK_LIBS PUBLIC

We need to avoid declaring dependencies on strings which are valid
LINK_LIBS and not valid targets.  Previously, we used if(TARGET) to
check this condition.  However, if(TARGET) checks whether a target has
been created (in the cmake subdirectory traversal order) and not
whether it *will* be created.  This results in annoying directory
ordering problems.

This patch changes the check to more explicitly eliminate problematic
libraries (namely -lpthread) using a REGEX.

Differential Revision: https://reviews.llvm.org/D79837
This commit is contained in:
Stephen Neuendorffer 2020-05-12 20:43:50 -07:00
parent 7d4167430c
commit 085234bedc
1 changed files with 2 additions and 1 deletions

View File

@ -483,7 +483,8 @@ function(llvm_add_library name)
"PUBLIC;PRIVATE"
${ARG_LINK_LIBS})
foreach(link_lib ${LINK_LIBS_ARG_PUBLIC})
if(TARGET ${link_lib})
# Can't specify a dependence on -lpthread
if(NOT ${link_lib} MATCHES "-.*")
add_dependencies(${obj_name} ${link_lib})
endif()
endforeach()