From f235dc83febf6a487468040803bb690048b5665c Mon Sep 17 00:00:00 2001 From: MouriNaruto Date: Thu, 16 May 2024 23:44:36 +0800 Subject: [PATCH] Make NanaZip Self Extracting Executable stubs use 7-Zip mainline Zstandard decoder instead of Zstandard official's for reducing the size for binaries. --- NanaZip.Codecs/NanaZip.Codecs.SfxStubs.props | 26 ---- .../NanaZip.Codecs.SfxStubs.vcxproj | 63 --------- .../NanaZip.Codecs.SfxStubs.vcxproj.filters | 126 ------------------ NanaZip.Core/NanaZip.Core.Sfx.Shared.props | 5 +- NanaZip.Core/NanaZip.Core.Sfx.Shared.vcxproj | 11 +- .../NanaZip.Core.Sfx.Shared.vcxproj.filters | 34 ++--- .../NanaZip.Core.Sfx.ZstandardRegister.cpp | 19 +++ NanaZip.sln | 11 -- 8 files changed, 47 insertions(+), 248 deletions(-) delete mode 100644 NanaZip.Codecs/NanaZip.Codecs.SfxStubs.props delete mode 100644 NanaZip.Codecs/NanaZip.Codecs.SfxStubs.vcxproj delete mode 100644 NanaZip.Codecs/NanaZip.Codecs.SfxStubs.vcxproj.filters create mode 100644 NanaZip.Core/NanaZip.Core.Sfx.ZstandardRegister.cpp diff --git a/NanaZip.Codecs/NanaZip.Codecs.SfxStubs.props b/NanaZip.Codecs/NanaZip.Codecs.SfxStubs.props deleted file mode 100644 index 8cad01a7..00000000 --- a/NanaZip.Codecs/NanaZip.Codecs.SfxStubs.props +++ /dev/null @@ -1,26 +0,0 @@ - - - - - $(MSBuildThisFileDirectory)xxHash\;$(IncludePath) - $(MSBuildThisFileDirectory)Zstandard\;$(IncludePath) - - - - $(OutDir)NanaZip.Codecs.SfxStubs.lib;%(AdditionalDependencies) - - - - - {1E894B34-F9D2-4258-9401-6519AAE91620} - - - \ No newline at end of file diff --git a/NanaZip.Codecs/NanaZip.Codecs.SfxStubs.vcxproj b/NanaZip.Codecs/NanaZip.Codecs.SfxStubs.vcxproj deleted file mode 100644 index 946bdc37..00000000 --- a/NanaZip.Codecs/NanaZip.Codecs.SfxStubs.vcxproj +++ /dev/null @@ -1,63 +0,0 @@ - - - - {1E894B34-F9D2-4258-9401-6519AAE91620} - NanaZip.Codecs.SfxStubs - StaticLibrary - true - - - - - - $(MSBuildThisFileDirectory)xxHash\;$(IncludePath) - $(MSBuildThisFileDirectory)Zstandard\;$(IncludePath) - - - - NoExtensions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/NanaZip.Codecs/NanaZip.Codecs.SfxStubs.vcxproj.filters b/NanaZip.Codecs/NanaZip.Codecs.SfxStubs.vcxproj.filters deleted file mode 100644 index a3ae3181..00000000 --- a/NanaZip.Codecs/NanaZip.Codecs.SfxStubs.vcxproj.filters +++ /dev/null @@ -1,126 +0,0 @@ - - - - - xxHash - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\decompress - - - Zstandard\decompress - - - Zstandard\decompress - - - Zstandard\decompress - - - - - {c1b717a9-c9d9-472f-ba5c-dc5fe82b7cc5} - - - {f48719f6-2f78-4486-8e50-29c661801111} - - - {6c79f254-3586-4307-bf3f-707a5567916f} - - - {aba1fb7a-0be1-4311-8d33-9d8ae70b3e17} - - - - - xxHash - - - Zstandard - - - Zstandard - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\common - - - Zstandard\decompress - - - Zstandard\decompress - - - Zstandard\decompress - - - - - - \ No newline at end of file diff --git a/NanaZip.Core/NanaZip.Core.Sfx.Shared.props b/NanaZip.Core/NanaZip.Core.Sfx.Shared.props index a56ca118..4f0a054b 100644 --- a/NanaZip.Core/NanaZip.Core.Sfx.Shared.props +++ b/NanaZip.Core/NanaZip.Core.Sfx.Shared.props @@ -1,12 +1,11 @@  - $(MSBuildThisFileDirectory);$(IncludePath) - Z7_EXTRACT_ONLY;Z7_NO_READ_FROM_CODER;Z7_SFX;%(PreprocessorDefinitions) + Z7_EXTRACT_ONLY;Z7_NO_READ_FROM_CODER;Z7_SFX;Z7_NO_LONG_PATH;Z7_NO_LARGE_PAGES;%(PreprocessorDefinitions) Z7_LZMA_DEC_OPT;%(PreprocessorDefinitions) @@ -15,7 +14,7 @@ - + diff --git a/NanaZip.Core/NanaZip.Core.Sfx.Shared.vcxproj b/NanaZip.Core/NanaZip.Core.Sfx.Shared.vcxproj index 0d6e5930..405adf3d 100644 --- a/NanaZip.Core/NanaZip.Core.Sfx.Shared.vcxproj +++ b/NanaZip.Core/NanaZip.Core.Sfx.Shared.vcxproj @@ -10,7 +10,6 @@ - NoExtensions @@ -34,8 +33,7 @@ - - + @@ -73,6 +71,7 @@ + @@ -112,9 +111,10 @@ + + - @@ -155,6 +155,7 @@ + @@ -218,6 +219,8 @@ + + diff --git a/NanaZip.Core/NanaZip.Core.Sfx.Shared.vcxproj.filters b/NanaZip.Core/NanaZip.Core.Sfx.Shared.vcxproj.filters index 28c821ac..417e55b7 100644 --- a/NanaZip.Core/NanaZip.Core.Sfx.Shared.vcxproj.filters +++ b/NanaZip.Core/NanaZip.Core.Sfx.Shared.vcxproj.filters @@ -1,12 +1,6 @@  - - {603f3b98-10fa-4703-a074-78a3a0575141} - - - {de1196d7-993c-4105-b0c0-be4dabfcad93} - {831b4812-8fbb-43f7-b499-2c0a9de0247f} @@ -78,12 +72,6 @@ - - Extensions\ZSCodecs - - - Extensions\ZSCodecs - SevenZip\C @@ -312,11 +300,18 @@ SevenZip\CPP\Windows + + SevenZip\C + + + SevenZip\C + + + SevenZip\CPP\7zip\Compress + + - - Extensions\ZSCodecs - SevenZip\C @@ -626,6 +621,15 @@ SevenZip\CPP\Common + + SevenZip\C + + + SevenZip\C + + + SevenZip\CPP\7zip\Compress + diff --git a/NanaZip.Core/NanaZip.Core.Sfx.ZstandardRegister.cpp b/NanaZip.Core/NanaZip.Core.Sfx.ZstandardRegister.cpp new file mode 100644 index 00000000..65afee7b --- /dev/null +++ b/NanaZip.Core/NanaZip.Core.Sfx.ZstandardRegister.cpp @@ -0,0 +1,19 @@ +/* + * PROJECT: NanaZip + * FILE: NanaZip.Core.Sfx.ZstandardRegister.cpp + * PURPOSE: Implementation for Zstandard decoder register + * + * LICENSE: The MIT License + * + * MAINTAINER: MouriNaruto (Kenji.Mouri@outlook.com) + */ + +#include "SevenZip/CPP/7zip/Common/RegisterCodec.h" +#include "SevenZip/CPP/7zip/Compress/ZstdDecoder.h" + +REGISTER_CODEC_E( + Zstd, + NCompress::NZstd::CDecoder(), + nullptr, + 0x4F71101, + "Zstd") diff --git a/NanaZip.sln b/NanaZip.sln index 8397a16c..5c2656c6 100644 --- a/NanaZip.sln +++ b/NanaZip.sln @@ -45,8 +45,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Classic", "Classic", "{6666 EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZip.Codecs", "NanaZip.Codecs\NanaZip.Codecs.vcxproj", "{89B81A5B-FF0D-4193-9CB1-738692775DD2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZip.Codecs.SfxStubs", "NanaZip.Codecs\NanaZip.Codecs.SfxStubs.vcxproj", "{1E894B34-F9D2-4258-9401-6519AAE91620}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NanaZip.Frieren", "NanaZip.Frieren\NanaZip.Frieren.vcxproj", "{4E78AF72-D7EF-4769-B64B-95E7EDF05FA2}" EndProject Global @@ -229,14 +227,6 @@ Global {89B81A5B-FF0D-4193-9CB1-738692775DD2}.Release|x64.Build.0 = Release|x64 {89B81A5B-FF0D-4193-9CB1-738692775DD2}.Release|x86.ActiveCfg = Release|Win32 {89B81A5B-FF0D-4193-9CB1-738692775DD2}.Release|x86.Build.0 = Release|Win32 - {1E894B34-F9D2-4258-9401-6519AAE91620}.Debug|ARM64.ActiveCfg = Debug|Win32 - {1E894B34-F9D2-4258-9401-6519AAE91620}.Debug|x64.ActiveCfg = Debug|Win32 - {1E894B34-F9D2-4258-9401-6519AAE91620}.Debug|x86.ActiveCfg = Debug|Win32 - {1E894B34-F9D2-4258-9401-6519AAE91620}.Debug|x86.Build.0 = Debug|Win32 - {1E894B34-F9D2-4258-9401-6519AAE91620}.Release|ARM64.ActiveCfg = Release|Win32 - {1E894B34-F9D2-4258-9401-6519AAE91620}.Release|x64.ActiveCfg = Release|Win32 - {1E894B34-F9D2-4258-9401-6519AAE91620}.Release|x86.ActiveCfg = Release|Win32 - {1E894B34-F9D2-4258-9401-6519AAE91620}.Release|x86.Build.0 = Release|Win32 {4E78AF72-D7EF-4769-B64B-95E7EDF05FA2}.Debug|ARM64.ActiveCfg = Debug|ARM64 {4E78AF72-D7EF-4769-B64B-95E7EDF05FA2}.Debug|ARM64.Build.0 = Debug|ARM64 {4E78AF72-D7EF-4769-B64B-95E7EDF05FA2}.Debug|x64.ActiveCfg = Debug|x64 @@ -271,7 +261,6 @@ Global {F4511F91-B0EB-41B4-99D6-AEB48169132B} = {B954CA12-11FE-45D8-A4D2-562560E1CD4D} {6666CFC3-1986-469A-9266-0FD8C2674DF6} = {FB9122A4-25AA-405E-9EE1-886274614847} {89B81A5B-FF0D-4193-9CB1-738692775DD2} = {94A1E11C-B722-4BAE-9B12-1495F5EF3CC9} - {1E894B34-F9D2-4258-9401-6519AAE91620} = {94A1E11C-B722-4BAE-9B12-1495F5EF3CC9} {4E78AF72-D7EF-4769-B64B-95E7EDF05FA2} = {94A1E11C-B722-4BAE-9B12-1495F5EF3CC9} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution