123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- From 5977725ecea038f32a86938703ca1ed2b080b31c Mon Sep 17 00:00:00 2001
- From: Andreas Ziegler <br015@umbiko.net>
- 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 <br015@umbiko.net>
- 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 $<TARGET_FILE_NAME:libzzip> ${libzzip_target}
- + )
- add_custom_target(libzzip_latest ALL
- - COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzip> ${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 $<TARGET_FILE_NAME:libzzipfseeko> ${libzzipfseeko_target}
- + )
- add_custom_target(libzzipfseeko_latest ALL
- - COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzipfseeko> ${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 $<TARGET_FILE_NAME:libzzipmmapped> ${libzzipmmapped_target}
- + )
- add_custom_target(libzzipmmaped_latest ALL
- - COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE_NAME:libzzipmmapped> ${lib}${libname}${dll}
- + DEPENDS ${libzzipmmapped_target}
- )
- install(FILES
- ${outdir}/${lib}${libname}${dll}
- --
- 2.34.1
|