From: Michał Górny Date: Sat, 19 Nov 2022 19:54:54 +0000 (+0100) Subject: [cmake] Fix Findzstd.cmake to handle OpenBSD shared libraries X-Git-Tag: upstream/17.0.6~26751 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5279e6a7d677cdf4488883b77aacab911318100c;p=platform%2Fupstream%2Fllvm.git [cmake] Fix Findzstd.cmake to handle OpenBSD shared libraries Fix Findzstd CMake to handle shared libraries on OpenBSD correctly. This userland does not use shared library symlinks without SOVERSION, so the result of find_library() does not ever end with zstd_SHARED_LIBRARY_SUFFIX. To work around this, reverse the logic to compare the result against zstd_STATIC_LIBRARY_SUFFIX and assume shared library otherwise. While at it, fix the conditions not to fall back to "result is static library" path if it actually was recognized as a shared library but zstd_shared target already existed. Fixes #59056 Differential Revision: https://reviews.llvm.org/D138361 --- diff --git a/llvm/cmake/modules/Findzstd.cmake b/llvm/cmake/modules/Findzstd.cmake index 3890bd2..178d995 100644 --- a/llvm/cmake/modules/Findzstd.cmake +++ b/llvm/cmake/modules/Findzstd.cmake @@ -11,10 +11,8 @@ # zstd::libzstd_static if(MSVC) - set(zstd_SHARED_LIBRARY_SUFFIX "\\${CMAKE_LINK_LIBRARY_SUFFIX}$") set(zstd_STATIC_LIBRARY_SUFFIX "_static\\${CMAKE_STATIC_LIBRARY_SUFFIX}$") else() - set(zstd_SHARED_LIBRARY_SUFFIX "\\${CMAKE_SHARED_LIBRARY_SUFFIX}$") set(zstd_STATIC_LIBRARY_SUFFIX "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$") endif() @@ -31,8 +29,9 @@ find_package_handle_standard_args( ) if(zstd_FOUND) - if(zstd_LIBRARY MATCHES "${zstd_SHARED_LIBRARY_SUFFIX}$" AND - NOT TARGET zstd::libzstd_shared) + if(zstd_LIBRARY MATCHES "${zstd_STATIC_LIBRARY_SUFFIX}$") + set(zstd_STATIC_LIBRARY "${zstd_LIBRARY}") + elseif (NOT TARGET zstd::libzstd_shared) add_library(zstd::libzstd_shared SHARED IMPORTED) if(MSVC) # IMPORTED_LOCATION is the path to the DLL and IMPORTED_IMPLIB is the "library". @@ -51,8 +50,6 @@ if(zstd_FOUND) INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}" IMPORTED_LOCATION "${zstd_LIBRARY}") endif() - else() - set(zstd_STATIC_LIBRARY "${zstd_LIBRARY}") endif() if(zstd_STATIC_LIBRARY MATCHES "${zstd_STATIC_LIBRARY_SUFFIX}$" AND NOT TARGET zstd::libzstd_static) @@ -63,7 +60,6 @@ if(zstd_FOUND) endif() endif() -unset(zstd_SHARED_LIBRARY_SUFFIX) unset(zstd_STATIC_LIBRARY_SUFFIX) mark_as_advanced(zstd_INCLUDE_DIR zstd_LIBRARY zstd_STATIC_LIBRARY)