From ab5c2f754cb51646a81484c8f4785fc9b98c921d Mon Sep 17 00:00:00 2001 From: Timo Sachsenberg Date: Thu, 26 Feb 2026 13:58:03 +0100 Subject: [PATCH] Add libzip 1.11.4 build support Co-Authored-By: Claude Opus 4.6 --- CMakeLists.txt | 35 +++--- libraries.cmake/libzip.cmake | 162 ++++++++++++++++++++++++++ libraries.cmake/minizip_ng.cmake | 188 ------------------------------- 3 files changed, 179 insertions(+), 206 deletions(-) create mode 100644 libraries.cmake/libzip.cmake delete mode 100644 libraries.cmake/minizip_ng.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c385dd..972c242 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,8 +91,8 @@ ## - however: exec_process seems to handle our arguments incorrectly (at least on Windows). Check functionality before you commit! # Determine what to build (all or single library) -set( BUILD_TYPE LIST CACHE STRING "Can be used to restrict building to a single library: ALL,LIBSVM,XERCESC,BOOST,COINOR,BZIP2,ZLIB,GLPK,KISSFFT,OPENMP,ARROW,MINIZIP_NG") -set( VALID_BUILD_TYPES "ALL" "LIBSVM" "XERCESC" "BOOST" "COINOR" "BZIP2" "ZLIB" "GLPK" "EIGEN" "KISSFFT" "HDF5" "OPENMP" "ARROW" "MINIZIP_NG") +set( BUILD_TYPE LIST CACHE STRING "Can be used to restrict building to a single library: ALL,LIBSVM,XERCESC,BOOST,COINOR,BZIP2,ZLIB,GLPK,KISSFFT,OPENMP,ARROW,LIBZIP") +set( VALID_BUILD_TYPES "ALL" "LIBSVM" "XERCESC" "BOOST" "COINOR" "BZIP2" "ZLIB" "GLPK" "EIGEN" "KISSFFT" "HDF5" "OPENMP" "ARROW" "LIBZIP") # check build type if (BUILD_TYPE STREQUAL "HELP" OR BUILD_TYPE STREQUAL "LIST") @@ -197,7 +197,7 @@ set(KISSFFT_DIR ${CONTRIB_BIN_SOURCE_DIR}/kissfft) set(HDF5_DIR ${CONTRIB_BIN_SOURCE_DIR}/hdfsrc) set(OPENMP_DIR ${CONTRIB_BIN_SOURCE_DIR}/openmp-12.0.1.src) set(ARROW_DIR ${CONTRIB_BIN_SOURCE_DIR}/arrow-apache-arrow-23.0.0/cpp) -set(MINIZIP_NG_DIR ${CONTRIB_BIN_SOURCE_DIR}/minizip-ng-4.0.7) +set(LIBZIP_DIR ${CONTRIB_BIN_SOURCE_DIR}/libzip-1.11.4) ## source(archive) paths ## PLEASE upload all source archives to @@ -212,7 +212,7 @@ set(MINIZIP_NG_DIR ${CONTRIB_BIN_SOURCE_DIR}/minizip-ng-4.0.7) ## set(ARCHIVE_ZLIB_SHA256 "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855") ## NOTE: for local development you can simply place the *.tar.gz in the binary ## directory to prevent the download and sha256 verification -## LIBRARIES: BZIP2, ZLIB, BOOST, XERCES, LIBSVM, GLPK, COINOR, EIGEN, KISSFFT, HDF5, OPENMP, ARROW, MINIZIP_NG +## LIBRARIES: BZIP2, ZLIB, BOOST, XERCES, LIBSVM, GLPK, COINOR, EIGEN, KISSFFT, HDF5, OPENMP, ARROW, LIBZIP set(ARCHIVE_BZIP2 bzip2-1.0.5.tar.gz) set(ARCHIVE_BZIP2_TAR bzip2-1.0.5.tar) @@ -262,9 +262,9 @@ set(ARCHIVE_ARROW arrow-apache-arrow-23.0.0.tar.gz ) set(ARCHIVE_ARROW_TAR arrow-apache-arrow-23.0.0.tar ) set(ARCHIVE_ARROW_SHA256 "7510f4b578febb3af5b3e93ad4616ae3cb680b0f651217ebb29f4c7e5ea952f3") -set(ARCHIVE_MINIZIP_NG minizip-ng-4.0.7.tar.gz) -set(ARCHIVE_MINIZIP_NG_TAR minizip-ng-4.0.7.tar) -set(ARCHIVE_MINIZIP_NG_SHA256 "a87f1f734f97095fe1ef0018217c149d53d0f78438bcb77af38adc21dff2dfbc") +set(ARCHIVE_LIBZIP libzip-1.11.4.tar.gz) +set(ARCHIVE_LIBZIP_TAR libzip-1.11.4.tar) +set(ARCHIVE_LIBZIP_SHA256 "82e9f2f2421f9d7c2466bbc3173cd09595a88ea37db0d559a9d0a2dc60dc722e") ## necessary for clean up .. change if install process of library changes set(INCLUDE_DIR_BOOST ${CONTRIB_BIN_INCLUDE_DIR}/boost) @@ -275,7 +275,6 @@ set(INCLUDE_DIR_EIGEN ${CONTRIB_BIN_INCLUDE_DIR}/eigen3) set(INCLUDE_DIR_KISSFFT ${CONTRIB_BIN_INCLUDE_DIR}/kissfft) set(INCLUDE_DIR_OPENMP ${CONTRIB_BIN_INCLUDE_DIR}/openmp.src) set(INCLUDE_DIR_ARROW ${CONTRIB_BIN_INCLUDE_DIR}/arrow) -set(INCLUDE_DIR_MINIZIP_NG ${CONTRIB_BIN_INCLUDE_DIR}/minizip-ng) ## hack for simple libs that do not have include directories set(INCLUDE_FILES_LIBSVM ${CONTRIB_BIN_INCLUDE_DIR}/svm.h) @@ -490,7 +489,7 @@ include ("${CMAKE_SOURCE_DIR}/libraries.cmake/kissfft.cmake") include ("${CMAKE_SOURCE_DIR}/libraries.cmake/hdf5.cmake") include ("${CMAKE_SOURCE_DIR}/libraries.cmake/openmp.cmake") include ("${CMAKE_SOURCE_DIR}/libraries.cmake/arrow.cmake") -include ("${CMAKE_SOURCE_DIR}/libraries.cmake/minizip_ng.cmake") +include ("${CMAKE_SOURCE_DIR}/libraries.cmake/libzip.cmake") ## build mac os x specific C/C++ flags set( OPENMS_CONTRIB_MACOSX_MIXED_MODE 0 CACHE INTERNAL "building multiple architectures on MacOSX" FORCE) @@ -554,15 +553,6 @@ if (BUILD_TYPE STREQUAL "ALL" OR "ARROW" IN_LIST BUILD_TYPE) OPENMS_COPY_LIBS("ARROW") endif() -################################################## -### MINIZIP_NG ### -################################################## -if (BUILD_TYPE STREQUAL "ALL" OR "MINIZIP_NG" IN_LIST BUILD_TYPE) - OPENMS_CLEAN_LIB("MINIZIP_NG") - OPENMS_CONTRIB_BUILD_MINIZIP_NG() - OPENMS_COPY_LIBS("MINIZIP_NG") -endif() - ################################################## ### LIBSVM ### ################################################## @@ -631,6 +621,15 @@ if (BUILD_TYPE STREQUAL "ALL" OR "HDF5" IN_LIST BUILD_TYPE) OPENMS_COPY_LIBS("HDF5") endif() +################################################## +### LIBZIP ### +################################################## +if (BUILD_TYPE STREQUAL "ALL" OR "LIBZIP" IN_LIST BUILD_TYPE) + OPENMS_CLEAN_LIB("LIBZIP") + OPENMS_CONTRIB_BUILD_LIBZIP() + OPENMS_COPY_LIBS("LIBZIP") +endif() + ################################################## ### OPENMP ### ################################################## diff --git a/libraries.cmake/libzip.cmake b/libraries.cmake/libzip.cmake new file mode 100644 index 0000000..40b5154 --- /dev/null +++ b/libraries.cmake/libzip.cmake @@ -0,0 +1,162 @@ +################################################## +### libzip ### +################################################## + +MACRO( OPENMS_CONTRIB_BUILD_LIBZIP ) +OPENMS_LOGHEADER_LIBRARY("libzip") +#extract: (takes very long.. so skip if possible) +if(MSVC) + set(ZIP_ARGS x -y -osrc) +else() + set(ZIP_ARGS xzf) +endif() +OPENMS_SMARTEXTRACT(ZIP_ARGS ARCHIVE_LIBZIP "LIBZIP" "CMakeLists.txt") + +# Common CMake options for libzip (all platforms) +set(_LIBZIP_COMMON_ARGS + "-DENABLE_COMMONCRYPTO=OFF" + "-DENABLE_GNUTLS=OFF" + "-DENABLE_MBEDTLS=OFF" + "-DENABLE_OPENSSL=OFF" + "-DENABLE_WINDOWS_CRYPTO=OFF" + "-DENABLE_BZIP2=ON" + "-DENABLE_LZMA=OFF" + "-DENABLE_ZSTD=OFF" + "-DBUILD_TOOLS=OFF" + "-DBUILD_REGRESS=OFF" + "-DBUILD_OSSFUZZ=OFF" + "-DBUILD_EXAMPLES=OFF" + "-DBUILD_DOC=OFF" + "-DCMAKE_PREFIX_PATH=${PROJECT_BINARY_DIR}" + "-DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}" +) + +## build the obj/lib +if (MSVC) + message(STATUS "Generating libzip build system .. ") + execute_process(COMMAND ${CMAKE_COMMAND} + ${_LIBZIP_COMMON_ARGS} + -G "${CMAKE_GENERATOR}" + ${ARCHITECTURE_OPTION_CMAKE} + . + WORKING_DIRECTORY ${LIBZIP_DIR} + OUTPUT_VARIABLE LIBZIP_CMAKE_OUT + ERROR_VARIABLE LIBZIP_CMAKE_ERR + RESULT_VARIABLE LIBZIP_CMAKE_SUCCESS) + + # output to logfile + file(APPEND ${LOGFILE} ${LIBZIP_CMAKE_OUT}) + file(APPEND ${LOGFILE} ${LIBZIP_CMAKE_ERR}) + + if(NOT LIBZIP_CMAKE_SUCCESS EQUAL 0) + message(STATUS "Generating libzip build system .. failed") + message(STATUS "Output: ${LIBZIP_CMAKE_OUT}") + message(FATAL_ERROR "Error: ${LIBZIP_CMAKE_ERR}") + else() + message(STATUS "Generating libzip build system .. done") + endif() + + message(STATUS "Building libzip lib (Debug) .. ") + execute_process(COMMAND ${CMAKE_COMMAND} --build ${LIBZIP_DIR} --target INSTALL --config Debug + WORKING_DIRECTORY ${LIBZIP_DIR} + OUTPUT_VARIABLE LIBZIP_BUILD_OUT + ERROR_VARIABLE LIBZIP_BUILD_ERR + RESULT_VARIABLE LIBZIP_BUILD_SUCCESS) + + # output to logfile + file(APPEND ${LOGFILE} ${LIBZIP_BUILD_OUT}) + file(APPEND ${LOGFILE} ${LIBZIP_BUILD_ERR}) + + if(NOT LIBZIP_BUILD_SUCCESS EQUAL 0) + message(STATUS "Building libzip lib (Debug) .. failed") + message(STATUS "Output: ${LIBZIP_BUILD_OUT}") + message(FATAL_ERROR "Error: ${LIBZIP_BUILD_ERR}") + else() + message(STATUS "Building libzip lib (Debug) .. done") + endif() + + # rebuild as release + message(STATUS "Building libzip lib (Release) .. ") + execute_process(COMMAND ${CMAKE_COMMAND} --build ${LIBZIP_DIR} --target INSTALL --config Release + WORKING_DIRECTORY ${LIBZIP_DIR} + OUTPUT_VARIABLE LIBZIP_BUILD_OUT + ERROR_VARIABLE LIBZIP_BUILD_ERR + RESULT_VARIABLE LIBZIP_BUILD_SUCCESS) + + # output to logfile + file(APPEND ${LOGFILE} ${LIBZIP_BUILD_OUT}) + file(APPEND ${LOGFILE} ${LIBZIP_BUILD_ERR}) + + if(NOT LIBZIP_BUILD_SUCCESS EQUAL 0) + message(STATUS "Building libzip lib (Release) .. failed") + message(STATUS "Output: ${LIBZIP_BUILD_OUT}") + message(FATAL_ERROR "Error: ${LIBZIP_BUILD_ERR}") + else() + message(STATUS "Building libzip lib (Release) .. done") + endif() + +else() ## Linux/MacOS + + # Build list of platform-specific CMake args + set(_LIBZIP_PLATFORM_ARGS) + if(APPLE) + list(APPEND _LIBZIP_PLATFORM_ARGS + "-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}" + "-DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}" + "-DCMAKE_MACOSX_RPATH=TRUE" + ) + endif() + + # CFLAGS for libzip + set(LIBZIP_CFLAGS "-Wall -O3 -fPIC") + + message(STATUS "Generating libzip build system .. ") + execute_process(COMMAND ${CMAKE_COMMAND} + ${_LIBZIP_PLATFORM_ARGS} + ${_LIBZIP_COMMON_ARGS} + -G "${CMAKE_GENERATOR}" + "-DCMAKE_BUILD_TYPE=Release" + "-DCMAKE_C_FLAGS=${LIBZIP_CFLAGS}" + . + WORKING_DIRECTORY ${LIBZIP_DIR} + OUTPUT_VARIABLE LIBZIP_CMAKE_OUT + ERROR_VARIABLE LIBZIP_CMAKE_ERR + RESULT_VARIABLE LIBZIP_CMAKE_SUCCESS) + + # output to logfile + file(APPEND ${LOGFILE} ${LIBZIP_CMAKE_OUT}) + file(APPEND ${LOGFILE} ${LIBZIP_CMAKE_ERR}) + + if(NOT LIBZIP_CMAKE_SUCCESS EQUAL 0) + message(STATUS "Generating libzip build system .. failed") + message(STATUS "Output: ${LIBZIP_CMAKE_OUT}") + message(STATUS "Error: ${LIBZIP_CMAKE_ERR}") + message(FATAL_ERROR "libzip configuration failed. Check the log file for details: ${LOGFILE}") + else() + message(STATUS "Generating libzip build system .. done") + endif() + + message(STATUS "Building libzip lib (Release) .. ") + execute_process(COMMAND ${CMAKE_COMMAND} + --build ${LIBZIP_DIR} + --target install + WORKING_DIRECTORY ${LIBZIP_DIR} + OUTPUT_VARIABLE LIBZIP_BUILD_OUT + ERROR_VARIABLE LIBZIP_BUILD_ERR + RESULT_VARIABLE LIBZIP_BUILD_SUCCESS) + + # output to logfile + file(APPEND ${LOGFILE} ${LIBZIP_BUILD_OUT}) + file(APPEND ${LOGFILE} ${LIBZIP_BUILD_ERR}) + + if(NOT LIBZIP_BUILD_SUCCESS EQUAL 0) + message(STATUS "Output: ${LIBZIP_BUILD_OUT}") + message(STATUS "Error: ${LIBZIP_BUILD_ERR}") + message(FATAL_ERROR "Building libzip lib (Release) .. failed") + else() + message(STATUS "Building libzip lib (Release) .. done") + endif() + +endif() + +ENDMACRO( OPENMS_CONTRIB_BUILD_LIBZIP ) diff --git a/libraries.cmake/minizip_ng.cmake b/libraries.cmake/minizip_ng.cmake deleted file mode 100644 index 5ef8dca..0000000 --- a/libraries.cmake/minizip_ng.cmake +++ /dev/null @@ -1,188 +0,0 @@ -################################################## -### minizip-ng ### -################################################## - -MACRO( OPENMS_CONTRIB_BUILD_MINIZIP_NG ) -OPENMS_LOGHEADER_LIBRARY("minizip-ng") -#extract: (takes very long.. so skip if possible) -if(MSVC) - set(ZIP_ARGS x -y -osrc) -else() - set(ZIP_ARGS xzf) -endif() -OPENMS_SMARTEXTRACT(ZIP_ARGS ARCHIVE_MINIZIP_NG "MINIZIP_NG" "CMakeLists.txt") - -# Common CMake options for minizip-ng (all platforms) -set(_MZ_COMMON_ARGS - "-DMZ_FETCH_LIBS=OFF" - "-DMZ_LIB_SUFFIX=-ng" - "-DMZ_COMPAT=OFF" - "-DMZ_ZLIB=ON" - "-DMZ_BZIP2=ON" - "-DMZ_LZMA=OFF" - "-DMZ_ZSTD=OFF" - "-DMZ_OPENSSL=OFF" - "-DMZ_ICONV=OFF" - "-DMZ_PKCRYPT=ON" - "-DMZ_WZAES=OFF" - "-DCMAKE_PREFIX_PATH=${PROJECT_BINARY_DIR}" - "-DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}" -) - -## build the obj/lib -if (MSVC) - message(STATUS "Generating minizip-ng build system .. ") - execute_process(COMMAND ${CMAKE_COMMAND} - ${_MZ_COMMON_ARGS} - -G "${CMAKE_GENERATOR}" - ${ARCHITECTURE_OPTION_CMAKE} - . - WORKING_DIRECTORY ${MINIZIP_NG_DIR} - OUTPUT_VARIABLE MZ_CMAKE_OUT - ERROR_VARIABLE MZ_CMAKE_ERR - RESULT_VARIABLE MZ_CMAKE_SUCCESS) - - # output to logfile - file(APPEND ${LOGFILE} ${MZ_CMAKE_OUT}) - file(APPEND ${LOGFILE} ${MZ_CMAKE_ERR}) - - if(NOT MZ_CMAKE_SUCCESS EQUAL 0) - message(STATUS "Generating minizip-ng build system .. failed") - message(STATUS "Output: ${MZ_CMAKE_OUT}") - message(FATAL_ERROR "Error: ${MZ_CMAKE_ERR}") - else() - message(STATUS "Generating minizip-ng build system .. done") - endif() - - message(STATUS "Building minizip-ng lib (Debug) .. ") - execute_process(COMMAND ${CMAKE_COMMAND} --build ${MINIZIP_NG_DIR} --target INSTALL --config Debug - WORKING_DIRECTORY ${MINIZIP_NG_DIR} - OUTPUT_VARIABLE MZ_BUILD_OUT - ERROR_VARIABLE MZ_BUILD_ERR - RESULT_VARIABLE MZ_BUILD_SUCCESS) - - # output to logfile - file(APPEND ${LOGFILE} ${MZ_BUILD_OUT}) - file(APPEND ${LOGFILE} ${MZ_BUILD_ERR}) - - if(NOT MZ_BUILD_SUCCESS EQUAL 0) - message(STATUS "Building minizip-ng lib (Debug) .. failed") - message(STATUS "Output: ${MZ_BUILD_OUT}") - message(FATAL_ERROR "Error: ${MZ_BUILD_ERR}") - else() - message(STATUS "Building minizip-ng lib (Debug) .. done") - endif() - - # rebuild as release - message(STATUS "Building minizip-ng lib (Release) .. ") - execute_process(COMMAND ${CMAKE_COMMAND} --build ${MINIZIP_NG_DIR} --target INSTALL --config Release - WORKING_DIRECTORY ${MINIZIP_NG_DIR} - OUTPUT_VARIABLE MZ_BUILD_OUT - ERROR_VARIABLE MZ_BUILD_ERR - RESULT_VARIABLE MZ_BUILD_SUCCESS) - - # output to logfile - file(APPEND ${LOGFILE} ${MZ_BUILD_OUT}) - file(APPEND ${LOGFILE} ${MZ_BUILD_ERR}) - - if(NOT MZ_BUILD_SUCCESS EQUAL 0) - message(STATUS "Building minizip-ng lib (Release) .. failed") - message(STATUS "Output: ${MZ_BUILD_OUT}") - message(FATAL_ERROR "Error: ${MZ_BUILD_ERR}") - else() - message(STATUS "Building minizip-ng lib (Release) .. done") - endif() - -else() ## Linux/MacOS - - # Build list of platform-specific CMake args - set(_MZ_PLATFORM_ARGS) - if(APPLE) - list(APPEND _MZ_PLATFORM_ARGS - "-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}" - "-DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}" - "-DCMAKE_MACOSX_RPATH=TRUE" - ) - endif() - - # CFLAGS for minizip-ng - set(MZ_CFLAGS "-Wall -O3 -fPIC") - - message(STATUS "Generating minizip-ng build system .. ") - execute_process(COMMAND ${CMAKE_COMMAND} - ${_MZ_PLATFORM_ARGS} - ${_MZ_COMMON_ARGS} - -G "${CMAKE_GENERATOR}" - "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_C_FLAGS=${MZ_CFLAGS}" - . - WORKING_DIRECTORY ${MINIZIP_NG_DIR} - OUTPUT_VARIABLE MZ_CMAKE_OUT - ERROR_VARIABLE MZ_CMAKE_ERR - RESULT_VARIABLE MZ_CMAKE_SUCCESS) - - # output to logfile - file(APPEND ${LOGFILE} ${MZ_CMAKE_OUT}) - file(APPEND ${LOGFILE} ${MZ_CMAKE_ERR}) - - if(NOT MZ_CMAKE_SUCCESS EQUAL 0) - message(STATUS "Generating minizip-ng build system .. failed") - message(STATUS "Output: ${MZ_CMAKE_OUT}") - message(STATUS "Error: ${MZ_CMAKE_ERR}") - message(FATAL_ERROR "minizip-ng configuration failed. Check the log file for details: ${LOGFILE}") - else() - message(STATUS "Generating minizip-ng build system .. done") - endif() - - message(STATUS "Building minizip-ng lib (Release) .. ") - execute_process(COMMAND ${CMAKE_COMMAND} - --build ${MINIZIP_NG_DIR} - --target install - WORKING_DIRECTORY ${MINIZIP_NG_DIR} - OUTPUT_VARIABLE MZ_BUILD_OUT - ERROR_VARIABLE MZ_BUILD_ERR - RESULT_VARIABLE MZ_BUILD_SUCCESS) - - # output to logfile - file(APPEND ${LOGFILE} ${MZ_BUILD_OUT}) - file(APPEND ${LOGFILE} ${MZ_BUILD_ERR}) - - if(NOT MZ_BUILD_SUCCESS EQUAL 0) - message(STATUS "Output: ${MZ_BUILD_OUT}") - message(STATUS "Error: ${MZ_BUILD_ERR}") - message(FATAL_ERROR "Building minizip-ng lib (Release) .. failed") - else() - message(STATUS "Building minizip-ng lib (Release) .. done") - endif() - -endif() - -# Fix minizip-ng CMake config files to be relocatable -# minizip-ng uses raw path variables (${ZLIB_LIBRARIES}) in target_link_libraries(... PUBLIC ...) -# which embeds absolute paths in the exported targets file. This breaks when the -# contrib archive is extracted to a different location. -set(MZ_CMAKE_DIR "${PROJECT_BINARY_DIR}/lib/cmake/minizip-ng") - -# Normalize path separators for replacement -file(TO_CMAKE_PATH "${PROJECT_BINARY_DIR}" PROJECT_BINARY_DIR_NORMALIZED) - -set(MZ_RELOCATABLE_REPLACEMENT "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_DIR}/../../..\" ABSOLUTE)") -set(MZ_ORIGINAL_PATTERN "set(_IMPORT_PREFIX \"${PROJECT_BINARY_DIR_NORMALIZED}\")") - -message(STATUS "minizip-ng relocatability fix:") -message(STATUS " Build dir: ${PROJECT_BINARY_DIR_NORMALIZED}") - -file(GLOB MZ_TARGET_FILES "${MZ_CMAKE_DIR}/minizip-ng*.cmake") -foreach(TARGET_FILE ${MZ_TARGET_FILES}) - file(READ "${TARGET_FILE}" TARGET_CONTENT) - # Fix the _IMPORT_PREFIX definition - string(REPLACE "${MZ_ORIGINAL_PATTERN}" "${MZ_RELOCATABLE_REPLACEMENT}" TARGET_CONTENT "${TARGET_CONTENT}") - # Fix ALL hardcoded absolute paths (IMPORTED_LOCATION, INTERFACE_LINK_LIBRARIES, generator expressions) - string(REPLACE "${PROJECT_BINARY_DIR_NORMALIZED}/" "\${_IMPORT_PREFIX}/" TARGET_CONTENT "${TARGET_CONTENT}") - file(WRITE "${TARGET_FILE}" "${TARGET_CONTENT}") - message(STATUS " Fixed: ${TARGET_FILE}") -endforeach() - -message(STATUS "Fixed minizip-ng CMake configs for relocatability") - -ENDMACRO( OPENMS_CONTRIB_BUILD_MINIZIP_NG )