From 0e8d35f92efb680c81f6ec1fca9f11d173dce389 Mon Sep 17 00:00:00 2001 From: Guido Draheim 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 --- 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 $ ${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 $ ${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 $ ${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}")