kumquat-buildroot/package/zziplib/0001-implant-ZZIP_LIBLATEST-for-zzip_lib.patch
Andreas Ziegler 0f3d6d2e6a package/zziplib: fix static build failure with mpd
The current released version of zziplib copies static libraries with appended
major version, but omits creating the necessary links to the base file names.
This prevents the linker to find the libraries via the search path.

The issue (https://github.com/gdraheim/zziplib/issues/117) has been
fixed upstream; this patch extracts the necessary part of commit 0e8d35f92efb680c81f6ec1fca9f11d173dce389, to enable creation of symlinks.

This resolves the following autobuild issues:

http://autobuild.buildroot.net/results/6c56b645a2b723920f07b98474452824fba5e2c1
http://autobuild.buildroot.net/results/032aaff121fb114f388c67dbca3ad2b02f670e38
http://autobuild.buildroot.net/results/ba711034c0abe980f677e26de41739223e2f66e9

Signed-off-by: Andreas Ziegler <br015@umbiko.net>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-03-27 17:55:23 +02:00

76 lines
2.8 KiB
Diff

From 0e8d35f92efb680c81f6ec1fca9f11d173dce389 Mon Sep 17 00:00:00 2001
From: Guido Draheim <guidod@gmx.de>
Date: Sat, 22 May 2021 15:13:28 +0200
Subject: [PATCH] #117 implant ZZIP_LIBLATEST for zzip.lib
[Andreas: Extract link creation for versioned libraries from commit
0e8d35f92efb680c81f6ec1fca9f11d173dce389.]
Signed-off-by: Andreas Ziegler <br015@umbiko.net>
---
zzip/CMakeLists.txt | 57 +++++++++++++++++++++++++++++++++++----------
1 file changed, 45 insertions(+), 12 deletions(-)
diff --git a/zzip/CMakeLists.txt b/zzip/CMakeLists.txt
index a966d5f..ccd08b6 100644
--- a/zzip/CMakeLists.txt
+++ b/zzip/CMakeLists.txt
@@ -28,6 +28,12 @@ option(ZZIP_LIBTOOL "Ensure binary compatibility with libtool" OFF)
option(ZZIP_PKGCONFIG "Generate pkg-config files for linking" OFF)
endif()
+if(ZZIP_LIBTOOL OR ZZIP_PKGCONFIG)
+option(ZZIP_LIBLATEST "Ensure libname.lib links to libname-REL.lib" ON)
+else()
+option(ZZIP_LIBLATEST "Ensure libname.lib links to libname-REL.lib" OFF)
+endif()
+
# used in zzip/_config.h
set(ZZIP_PACKAGE "${PROJECT_NAME}lib")
set(ZZIP_VERSION "${PROJECT_VERSION}")
@@ -346,6 +340,45 @@ if(ZZIP_LIBTOOL)
endif(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG)
endif(ZZIP_LIBTOOL)
+if(ZZIP_LIBLATEST)
+ if(BUILD_SHARED_LIBS)
+ set(lib ${CMAKE_SHARED_LIBRARY_PREFIX})
+ set(dll ${CMAKE_SHARED_LIBRARY_SUFFIX})
+ else()
+ set(lib ${CMAKE_STATIC_LIBRARY_PREFIX})
+ set(dll ${CMAKE_STATIC_LIBRARY_SUFFIX})
+ endif()
+ get_target_property(libname libzzip OUTPUT_NAME)
+ get_target_property(librelease libzzip RELEASE_POSTFIX)
+ add_custom_target(libzzip_latest ALL
+ COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzip> ${lib}${libname}${dll}
+ )
+ install(FILES
+ ${outdir}/${lib}${libname}${dll}
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ if(ZZIPFSEEKO)
+ get_target_property(libname libzzipfseeko OUTPUT_NAME)
+ get_target_property(librelease libzzipfseeko RELEASE_POSTFIX)
+ add_custom_target(libzzipfseeko_latest ALL
+ COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzipfseeko> ${lib}${libname}${dll}
+ )
+ install(FILES
+ ${outdir}/${lib}${libname}${dll}
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif(ZZIPFSEEKO)
+ if(ZZIPMMAPPED)
+ get_target_property(libname libzzipmmapped OUTPUT_NAME)
+ get_target_property(librelease libzzipmmapped RELEASE_POSTFIX)
+ add_custom_target(libzzipmmaped_latest ALL
+ COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzipmmapped> ${lib}${libname}${dll}
+ )
+ install(FILES
+ ${outdir}/${lib}${libname}${dll}
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif(ZZIPMMAPPED)
+endif(ZZIP_LIBLATEST)
+
+
## messages ##############################################
message(STATUS "lib zzipfseeko to be compiled: ${ZZIPFSEEKO}")