[CMake] LLVMSupport: Give system_libs PRIVATE scope when LLVMSupport is built as SHARED. Users of LLVMSupport won't inherit ${system_libs}.

unittests/SupporTests is another user of libpthreads. Apply LLVM_SYSTEM_LIBS for him explicitly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221531 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
NAKAMURA Takumi 2014-11-07 16:08:19 +00:00
parent b3963d680c
commit 93f761eced
2 changed files with 36 additions and 36 deletions

View File

@ -1,3 +1,32 @@
set(system_libs)
if( NOT MSVC )
if( MINGW )
set(system_libs ${system_libs} imagehlp psapi shell32)
elseif( CMAKE_HOST_UNIX )
if( HAVE_LIBRT )
set(system_libs ${system_libs} rt)
endif()
if( HAVE_LIBDL )
set(system_libs ${system_libs} ${CMAKE_DL_LIBS})
endif()
if(LLVM_ENABLE_TERMINFO)
if(HAVE_TERMINFO)
set(system_libs ${system_libs} ${TERMINFO_LIBS})
endif()
endif()
if( LLVM_ENABLE_THREADS AND HAVE_LIBATOMIC )
set(system_libs ${system_libs} atomic)
endif()
if( LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD )
set(system_libs ${system_libs} pthread)
endif()
if ( LLVM_ENABLE_ZLIB AND HAVE_LIBZ )
set(system_libs ${system_libs} z)
endif()
set(system_libs ${system_libs} m)
endif( MINGW )
endif( NOT MSVC )
add_llvm_library(LLVMSupport
APFloat.cpp
APInt.cpp
@ -117,42 +146,8 @@ add_llvm_library(LLVMSupport
Windows/ThreadLocal.inc
Windows/TimeValue.inc
Windows/Watchdog.inc
LINK_LIBS ${system_libs}
)
set(system_libs)
if( NOT MSVC )
if( MINGW )
set(system_libs ${system_libs} imagehlp psapi shell32)
elseif( CMAKE_HOST_UNIX )
if( HAVE_LIBRT )
set(system_libs ${system_libs} rt)
endif()
if( HAVE_LIBDL )
set(system_libs ${system_libs} ${CMAKE_DL_LIBS})
endif()
if(LLVM_ENABLE_TERMINFO)
if(HAVE_TERMINFO)
set(system_libs ${system_libs} ${TERMINFO_LIBS})
endif()
endif()
if( LLVM_ENABLE_THREADS AND HAVE_LIBATOMIC )
set(system_libs ${system_libs} atomic)
endif()
if( LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD )
set(system_libs ${system_libs} pthread)
endif()
if ( LLVM_ENABLE_ZLIB AND HAVE_LIBZ )
set(system_libs ${system_libs} z)
endif()
set(system_libs ${system_libs} m)
endif( MINGW )
endif( NOT MSVC )
if(POLICY CMP0022 AND BUILD_SHARED_LIBS)
# FIXME: Should this be really PUBLIC?
target_link_libraries(LLVMSupport PUBLIC ${system_libs})
else()
target_link_libraries(LLVMSupport ${cmake_2_8_12_INTERFACE} ${system_libs})
endif()
set_property(TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS "${system_libs}")

View File

@ -42,3 +42,8 @@ add_llvm_unittest(SupportTests
formatted_raw_ostream_test.cpp
raw_ostream_test.cpp
)
# ManagedStatic.cpp uses <pthread>.
if(LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD)
target_link_libraries(SupportTests pthread)
endif()