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

Rafael EspĂ­ndola rafael.espindola at gmail.com
Fri Nov 7 08:28:13 PST 2014


awesome, thanks!

On 7 November 2014 11:08, NAKAMURA Takumi <geek4civic at gmail.com> wrote:
> Author: chapuni
> Date: Fri Nov  7 10:08:19 2014
> New Revision: 221531
>
> URL: http://llvm.org/viewvc/llvm-project?rev=221531&view=rev
> Log:
> [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.
>
> Modified:
>     llvm/trunk/lib/Support/CMakeLists.txt
>     llvm/trunk/unittests/Support/CMakeLists.txt
>
> Modified: llvm/trunk/lib/Support/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/CMakeLists.txt?rev=221531&r1=221530&r2=221531&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/CMakeLists.txt (original)
> +++ llvm/trunk/lib/Support/CMakeLists.txt Fri Nov  7 10:08:19 2014
> @@ -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}")
>
> Modified: llvm/trunk/unittests/Support/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/CMakeLists.txt?rev=221531&r1=221530&r2=221531&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/Support/CMakeLists.txt (original)
> +++ llvm/trunk/unittests/Support/CMakeLists.txt Fri Nov  7 10:08:19 2014
> @@ -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()
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list