From 47af38473c6ff427b75263041a62484ffac1b03c Mon Sep 17 00:00:00 2001 From: Saul Thurrowgood Date: Wed, 23 Nov 2016 11:00:31 +1100 Subject: Add zstd port --- ports/zstd/CONTROL | 3 +++ ports/zstd/portfile.cmake | 58 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 ports/zstd/CONTROL create mode 100644 ports/zstd/portfile.cmake diff --git a/ports/zstd/CONTROL b/ports/zstd/CONTROL new file mode 100644 index 000000000..f92f610a4 --- /dev/null +++ b/ports/zstd/CONTROL @@ -0,0 +1,3 @@ +Source: zstd +Version: 1.1.1 +Description: Zstandard - Fast real-time compression algorithm http://www.zstd.net diff --git a/ports/zstd/portfile.cmake b/ports/zstd/portfile.cmake new file mode 100644 index 000000000..c7c276e7a --- /dev/null +++ b/ports/zstd/portfile.cmake @@ -0,0 +1,58 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/zstd-1.1.1) +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/facebook/zstd/archive/v1.1.1.zip" + FILENAME "zstd-1.1.1.zip" + SHA512 c96a97519202a759c62f661c7bbaeaa0d48e4e78588a8232ad23fd78fe7c3440f1f07d996dcf07daa652569e1c5e39cb7b93103b9ec7845db05b161ec29a8dde +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH}/build/cmake + OPTIONS -DZSTD_LEGACY_SUPPORT=1 +) + +vcpkg_build_cmake() + +# Manual install since zstd guarded all their installation functions behind an if (UNIX) +message(STATUS "Installing") + +file(COPY ${SOURCE_PATH}/lib/zstd.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/lib/common/zbuff.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/lib/dictBuilder/zdict.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Copy the command-line zstd exe +file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/programs/Release/ + DESTINATION ${CURRENT_PACKAGES_DIR}/tools + FILES_MATCHING PATTERN "zstd.exe") + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + # Dynamic libs of zstd appear to start with "zstdlib." + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/Release/ + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + FILES_MATCHING PATTERN "zstdlib.*.lib") + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/Release/ + DESTINATION ${CURRENT_PACKAGES_DIR}/bin + FILES_MATCHING PATTERN "zstdlib.*.dll") + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/Debug/ + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + FILES_MATCHING PATTERN "zstdlib.*.lib") + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/Debug/ + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin + FILES_MATCHING PATTERN "zstdlib.*.dll") +else() + # Static libs of zstd appear to start with "zstdlib_" + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/Release/ + DESTINATION ${CURRENT_PACKAGES_DIR}/lib + FILES_MATCHING PATTERN "zstdlib_*.lib") + file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/Debug/ + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib + FILES_MATCHING PATTERN "zstdlib_*.lib") +endif() + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zstd) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/zstd/LICENSE ${CURRENT_PACKAGES_DIR}/share/zstd/copyright) + +vcpkg_copy_pdbs() +message(STATUS "Installing done") -- cgit v1.2.3 From 5c745463008a800cba3af3a4af06e83823d248f7 Mon Sep 17 00:00:00 2001 From: Saul Thurrowgood Date: Wed, 23 Nov 2016 17:56:56 +1100 Subject: zstd port: rename to non-versioned libs, don't --- ports/zstd/portfile.cmake | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ports/zstd/portfile.cmake b/ports/zstd/portfile.cmake index c7c276e7a..e9ba07b54 100644 --- a/ports/zstd/portfile.cmake +++ b/ports/zstd/portfile.cmake @@ -21,11 +21,6 @@ file(COPY ${SOURCE_PATH}/lib/zstd.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(COPY ${SOURCE_PATH}/lib/common/zbuff.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(COPY ${SOURCE_PATH}/lib/dictBuilder/zdict.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -# Copy the command-line zstd exe -file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/programs/Release/ - DESTINATION ${CURRENT_PACKAGES_DIR}/tools - FILES_MATCHING PATTERN "zstd.exe") - if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) # Dynamic libs of zstd appear to start with "zstdlib." file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/Release/ -- cgit v1.2.3 From 431f5e12a3626ac522fb468e44b7b3549f2d2fe1 Mon Sep 17 00:00:00 2001 From: Saul Thurrowgood Date: Wed, 23 Nov 2016 17:58:25 +1100 Subject: zstd port: rename libs to non-versioned names --- ports/zstd/portfile.cmake | 57 ++++++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/ports/zstd/portfile.cmake b/ports/zstd/portfile.cmake index e9ba07b54..7384e5461 100644 --- a/ports/zstd/portfile.cmake +++ b/ports/zstd/portfile.cmake @@ -7,47 +7,58 @@ vcpkg_download_distfile(ARCHIVE ) vcpkg_extract_source_archive(${ARCHIVE}) +# Name dynamic libs to be non-versioned and simpler "zstd". +# Avoid name conflict with static, so postfix static to "zstd-static" +# This seems to be less painful than renaming a DLL file after creation. +set(lib_cmake_filename ${SOURCE_PATH}/build/cmake/lib/CMakeLists.txt) +if (NOT EXISTS ${lib_cmake_filename}.orig) + file(INSTALL ${SOURCE_PATH}/build/cmake/lib/CMakeLists.txt + DESTINATION ${SOURCE_PATH}/build/cmake/lib + RENAME CMakeLists.txt.orig) +endif() +file(READ "${lib_cmake_filename}" lib_cmake_content) +string(REPLACE + "SET(SHARED_LIBRARY_OUTPUT_NAME \${LIBRARY_BASE_NAME}.\${LIBVER_MAJOR}.\${LIBVER_MINOR}.\${LIBVER_RELEASE})" + "SET(SHARED_LIBRARY_OUTPUT_NAME zstd)" + lib_cmake_content + "${lib_cmake_content}" +) +string(REPLACE + "SET(STATIC_LIBRARY_OUTPUT_NAME \${LIBRARY_BASE_NAME})" + "SET(STATIC_LIBRARY_OUTPUT_NAME zstd-static)" + lib_cmake_content + "${lib_cmake_content}" +) +file(WRITE "${lib_cmake_filename}" "${lib_cmake_content}") + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH}/build/cmake OPTIONS -DZSTD_LEGACY_SUPPORT=1 ) - vcpkg_build_cmake() -# Manual install since zstd guarded all their installation functions behind an if (UNIX) +# Manual install message(STATUS "Installing") file(COPY ${SOURCE_PATH}/lib/zstd.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(COPY ${SOURCE_PATH}/lib/common/zbuff.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(COPY ${SOURCE_PATH}/lib/dictBuilder/zdict.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +set(RELDIR ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/Release) +set(DEBDIR ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/Debug) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - # Dynamic libs of zstd appear to start with "zstdlib." - file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/Release/ - DESTINATION ${CURRENT_PACKAGES_DIR}/lib - FILES_MATCHING PATTERN "zstdlib.*.lib") - file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/Release/ - DESTINATION ${CURRENT_PACKAGES_DIR}/bin - FILES_MATCHING PATTERN "zstdlib.*.dll") - file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/Debug/ - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib - FILES_MATCHING PATTERN "zstdlib.*.lib") - file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/Debug/ - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin - FILES_MATCHING PATTERN "zstdlib.*.dll") + file(INSTALL ${RELDIR}/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib FILES_MATCHING PATTERN "zstd_*.lib") + file(INSTALL ${RELDIR}/ DESTINATION ${CURRENT_PACKAGES_DIR}/bin FILES_MATCHING PATTERN "zstd_*.dll") + file(INSTALL ${DEBDIR}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib FILES_MATCHING PATTERN "zstd_*.lib") + file(INSTALL ${DEBDIR}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin FILES_MATCHING PATTERN "zstd_*.dll") + vcpkg_copy_pdbs() else() - # Static libs of zstd appear to start with "zstdlib_" - file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/Release/ - DESTINATION ${CURRENT_PACKAGES_DIR}/lib - FILES_MATCHING PATTERN "zstdlib_*.lib") - file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/Debug/ - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib - FILES_MATCHING PATTERN "zstdlib_*.lib") + file(INSTALL ${RELDIR}/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib FILES_MATCHING PATTERN "zstd-static_*.lib") + file(INSTALL ${DEBDIR}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib FILES_MATCHING PATTERN "zstd-static_*.lib") endif() # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zstd) file(RENAME ${CURRENT_PACKAGES_DIR}/share/zstd/LICENSE ${CURRENT_PACKAGES_DIR}/share/zstd/copyright) -vcpkg_copy_pdbs() message(STATUS "Installing done") -- cgit v1.2.3