From: NAKAMURA Takumi Date: Fri, 7 Nov 2014 16:08:19 +0000 (+0000) Subject: [CMake] LLVMSupport: Give system_libs PRIVATE scope when LLVMSupport is built as... X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=93f761eced7f7f5b721ccabb3d0fc3001010008d [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 --- diff --git a/lib/Support/CMakeLists.txt b/lib/Support/CMakeLists.txt index a751d62ebb8..38481f11ac6 100644 --- a/lib/Support/CMakeLists.txt +++ b/lib/Support/CMakeLists.txt @@ -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 - ) -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() + LINK_LIBS ${system_libs} + ) set_property(TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS "${system_libs}") diff --git a/unittests/Support/CMakeLists.txt b/unittests/Support/CMakeLists.txt index 97c5c43aeb6..7abdd8ab82b 100644 --- a/unittests/Support/CMakeLists.txt +++ b/unittests/Support/CMakeLists.txt @@ -42,3 +42,8 @@ add_llvm_unittest(SupportTests formatted_raw_ostream_test.cpp raw_ostream_test.cpp ) + +# ManagedStatic.cpp uses . +if(LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD) + target_link_libraries(SupportTests pthread) +endif()