[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