diff --git a/ports/libdeflate/CONTROL b/ports/libdeflate/CONTROL new file mode 100644 index 00000000000000..970b620cc6a133 --- /dev/null +++ b/ports/libdeflate/CONTROL @@ -0,0 +1,4 @@ +Source: libdeflate +Version: 1.5 +Homepage: https://github.com/ebiggers/libdeflate +Description: Heavily optimized library for DEFLATE/zlib/gzip compression and decompression diff --git a/ports/libdeflate/makefile.patch b/ports/libdeflate/makefile.patch new file mode 100644 index 00000000000000..ee31befa385813 --- /dev/null +++ b/ports/libdeflate/makefile.patch @@ -0,0 +1,31 @@ +diff --git a/Makefile.msc b/Makefile.msc +index 901131d..00f0568 100644 +--- a/Makefile.msc ++++ b/Makefile.msc +@@ -10,7 +10,7 @@ + CC = cl + LD = link + AR = lib +-CFLAGS = /MD /O2 -I. -Icommon ++CFLAGS = $(CL_FLAGS) -I. -Icommon + LDFLAGS = + + STATIC_LIB = libdeflatestatic.lib +@@ -60,6 +60,14 @@ gunzip.exe:gzip.exe + copy $** $@ + + clean: +- -del *.dll *.exe *.exp libdeflate.lib libdeflatestatic.lib gzip.lib \ +- lib\*.obj lib\*\*.obj lib\*.dllobj lib\*\*.dllobj \ +- programs\*.obj 2>nul ++ -del /s /q *.dll *.exe *.exp libdeflate.lib libdeflatestatic.lib gzip.lib \ ++ lib\*.obj lib\*.dllobj \ ++ programs\*.obj ++ ++install: all ++ -xcopy /i /y "gzip.exe" "$(INSTALLDIR)/bin\" ++ -xcopy /i /y "gunzip.exe" "$(INSTALLDIR)/bin\" ++ -xcopy /i /y "$(SHARED_LIB)" "$(INSTALLDIR)/bin\" ++ -xcopy /i /y "$(STATIC_LIB)" "$(INSTALLDIR)/lib\" ++ -xcopy /i /y "$(IMPORT_LIB)" "$(INSTALLDIR)/lib\" ++ -xcopy /i /y "libdeflate.h" "$(INSTALLDIR)/include\" diff --git a/ports/libdeflate/portfile.cmake b/ports/libdeflate/portfile.cmake new file mode 100644 index 00000000000000..d24a78d659ea3f --- /dev/null +++ b/ports/libdeflate/portfile.cmake @@ -0,0 +1,54 @@ +vcpkg_fail_port_install(ON_TARGET "Linux" "OSX" "UWP") + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ebiggers/libdeflate + REF v1.5 + SHA512 8e86e87733bb1b2b2d4dda6ce0be96b57a125776c1f81804d5fc6f51516dd52796d9bb800ca4044c637963136ae390cfaf5cd804e9ae8b5d93d36853d0e807f6 + HEAD_REF master + PATCHES + makefile.patch +) + +vcpkg_install_nmake( + SOURCE_PATH ${SOURCE_PATH} + PROJECT_NAME Makefile.msc +) + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + + file(COPY ${CURRENT_PACKAGES_DIR}/debug/bin/gzip.exe DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}) + file(COPY ${CURRENT_PACKAGES_DIR}/debug/bin/gunzip.exe DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}) + + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/gzip.exe) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/gunzip.exe) + + if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/libdeflatestatic.lib) + elseif (VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/libdeflate.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libdeflatestatic.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libdeflate.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/libdeflate.dll) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) + endif() +endif() + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(COPY ${CURRENT_PACKAGES_DIR}/bin/gzip.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) + file(COPY ${CURRENT_PACKAGES_DIR}/bin/gunzip.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) + + file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/gzip.exe) + file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/gunzip.exe) + + if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libdeflatestatic.lib) + elseif (VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libdeflate.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libdeflatestatic.lib ${CURRENT_PACKAGES_DIR}/lib/libdeflate.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/libdeflate.dll) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + endif() +endif() + +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index d40cdb2284e47d..e57327c9591154 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -693,6 +693,10 @@ libcopp:arm-uwp=fail libcopp:x64-windows-static=fail libdatrie:x64-linux=fail libdatrie:x64-osx=fail +libdeflate:x64-linux=fail +libdeflate:x64-osx=fail +libdeflate:x64-uwp=fail +libdeflate:arm-uwp=fail libdisasm:arm-uwp=fail libdisasm:x64-uwp=fail libdshowcapture:arm64-windows=fail