diff --git a/package/zziplib/0002-ZZIP_LIBLATEST-create-symlinks-only-if-target-is-mis.patch b/package/zziplib/0002-ZZIP_LIBLATEST-create-symlinks-only-if-target-is-mis.patch new file mode 100644 index 0000000000..c8ccd48dba --- /dev/null +++ b/package/zziplib/0002-ZZIP_LIBLATEST-create-symlinks-only-if-target-is-mis.patch @@ -0,0 +1,72 @@ +From 5977725ecea038f32a86938703ca1ed2b080b31c Mon Sep 17 00:00:00 2001 +From: Andreas Ziegler +Date: Fri, 29 Jul 2022 12:32:27 +0200 +Subject: [PATCH] ZZIP_LIBLATEST: create symlinks only if target is missing + +zzip/CMakeList.txt uses custom build targets to create symlinks to the +(normally versioned) build results from unversioned file names. These +targets are executed unconditionally, every time a build is started, +regardless of the existence of the symlink. + +Debug builds, however, generate unversioned libraries. The build targets +therefore overwrite existing files with recursive links. + +Create custom targets depending on the target file plus custom build +commands containing the symlink creation, thereby ensuring that symlinks +are only created if the link target is missing. + +Signed-off-by: Andreas Ziegler +Upstream: https://github.com/gdraheim/zziplib/pull/138 +--- + zzip/CMakeLists.txt | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/zzip/CMakeLists.txt b/zzip/CMakeLists.txt +index 4fa6b9c..dd1e56a 100644 +--- a/zzip/CMakeLists.txt ++++ b/zzip/CMakeLists.txt +@@ -350,8 +350,12 @@ if(ZZIP_LIBLATEST) + endif() + get_target_property(libname libzzip OUTPUT_NAME) + get_target_property(librelease libzzip RELEASE_POSTFIX) ++ set(libzzip_target "${lib}${libname}${dll}") ++ add_custom_command(OUTPUT ${libzzip_target} ++ COMMAND ${CMAKE_COMMAND} -E create_symlink $ ${libzzip_target} ++ ) + add_custom_target(libzzip_latest ALL +- COMMAND ${CMAKE_COMMAND} -E create_symlink $ ${lib}${libname}${dll} ++ DEPENDS ${libzzip_target} + ) + install(FILES + ${outdir}/${lib}${libname}${dll} +@@ -359,8 +363,12 @@ if(ZZIP_LIBLATEST) + if(ZZIPFSEEKO) + get_target_property(libname libzzipfseeko OUTPUT_NAME) + get_target_property(librelease libzzipfseeko RELEASE_POSTFIX) ++ set(libzzipfseeko_target "${lib}${libname}${dll}") ++ add_custom_command(OUTPUT ${libzzipfseeko_target} ++ COMMAND ${CMAKE_COMMAND} -E create_symlink $ ${libzzipfseeko_target} ++ ) + add_custom_target(libzzipfseeko_latest ALL +- COMMAND ${CMAKE_COMMAND} -E create_symlink $ ${lib}${libname}${dll} ++ DEPENDS ${libzzipfseeko_target} + ) + install(FILES + ${outdir}/${lib}${libname}${dll} +@@ -369,8 +377,12 @@ if(ZZIP_LIBLATEST) + if(ZZIPMMAPPED) + get_target_property(libname libzzipmmapped OUTPUT_NAME) + get_target_property(librelease libzzipmmapped RELEASE_POSTFIX) ++ set(libzzipmmapped_target "${lib}${libname}${dll}") ++ add_custom_command(OUTPUT ${libzzipmmapped_target} ++ COMMAND ${CMAKE_COMMAND} -E create_symlink $ ${libzzipmmapped_target} ++ ) + add_custom_target(libzzipmmaped_latest ALL +- COMMAND ${CMAKE_COMMAND} -E create_symlink $ ${lib}${libname}${dll} ++ DEPENDS ${libzzipmmapped_target} + ) + install(FILES + ${outdir}/${lib}${libname}${dll} +-- +2.34.1 +