diff --git a/.gitignore b/.gitignore index 3ba16f7..99f34e3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,8 @@ .idea/ cmake-build-*/ -# build -build/ +# build(仅根目录,不影响 vendor/lz4/build 等子目录) +/build/ compile_commands.json diff --git a/README.md b/README.md index 90509ff..1d2bc75 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # exPKG ## useage -> ```bash -> expkg /path/to/file.pkg|file.mpkg [output/path] ->``` + ```bash + expkg /path/to/file.pkg|file.mpkg [output/path] +``` build ```bash -> cmake -B build -> cmake --build build --config Release -j8 ->``` + cmake -B build + cmake --build build --config Release -j8 +``` diff --git a/vendor/lz4/build/.gitignore b/vendor/lz4/build/.gitignore new file mode 100644 index 0000000..f0a2f9d --- /dev/null +++ b/vendor/lz4/build/.gitignore @@ -0,0 +1,18 @@ +# Visual C++ +.vs/ +*Copy +*.db +*.opensdf +*.sdf +*.suo +*.user +ver*/ +VS2010/bin/ +VS2017/bin/ +VS*/bin/ +ipch + +# Fixup for lz4 project directories +!VS2010/lz4 +!VS2017/lz4 +!VS*/lz4 diff --git a/vendor/lz4/build/README.md b/vendor/lz4/build/README.md new file mode 100644 index 0000000..d183edb --- /dev/null +++ b/vendor/lz4/build/README.md @@ -0,0 +1,44 @@ +Projects for various integrated development environments (IDE) +============================================================== + +#### Included projects + +The following projects are included with the lz4 distribution: +- `cmake` - CMake project +- `meson` - Meson project +- `visual` - scripts to generate Visual Studio solutions from `cmake` script +- `VS2022` - Visual Studio 2022 solution - will soon be deprecated, prefer `visual` generators + + +#### Projects available within VS2022\lz4.sln + +The Visual Studio solution file `lz4.sln` contains many projects that will be compiled to the +`build\VS2010\bin\$(Platform)_$(Configuration)` directory. For example `lz4` set to `x64` and +`Release` will be compiled to `build\VS2010\bin\x64_Release\lz4.exe`. The solution file contains the +following projects: + +- `lz4` : Command Line Utility, supporting gzip-like arguments +- `datagen` : Synthetic and parametrable data generator, for tests +- `frametest` : Test tool that checks lz4frame integrity on target platform +- `fullbench` : Precisely measure speed for each lz4 inner functions +- `fuzzer` : Test tool, to check lz4 integrity on target platform +- `liblz4` : A static LZ4 library compiled to `liblz4_static.lib` +- `liblz4-dll` : A dynamic LZ4 library (DLL) compiled to `liblz4.dll` with the import library `liblz4.lib` +- `fullbench-dll` : The fullbench program compiled with the import library; the executable requires LZ4 DLL + + +#### Using LZ4 DLL with Microsoft Visual C++ project + +The header files `lib\lz4.h`, `lib\lz4hc.h`, `lib\lz4frame.h` and the import library +`build\VS2010\bin\$(Platform)_$(Configuration)\liblz4.lib` are required to +compile a project using Visual C++. + +1. The path to header files should be added to `Additional Include Directories` that can + be found in Project Properties of Visual Studio IDE in the `C/C++` Property Pages on the `General` page. +2. The import library has to be added to `Additional Dependencies` that can + be found in Project Properties in the `Linker` Property Pages on the `Input` page. + If one will provide only the name `liblz4.lib` without a full path to the library + then the directory has to be added to `Linker\General\Additional Library Directories`. + +The compiled executable will require LZ4 DLL which is available at +`build\VS2010\bin\$(Platform)_$(Configuration)\liblz4.dll`. diff --git a/vendor/lz4/build/VS2022/_build.bat b/vendor/lz4/build/VS2022/_build.bat new file mode 100644 index 0000000..2c2eb57 --- /dev/null +++ b/vendor/lz4/build/VS2022/_build.bat @@ -0,0 +1,39 @@ +set /a errorno=1 +for /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "esc=%%E" + +rem https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference + +set "sln=lz4.sln" + +@rem set "Configuration=Debug" +@rem set "Platform=Win32" + +set "BIN=.\bin\!Platform!_!Configuration!" +rmdir /S /Q "!BIN!" 2>nul +echo msbuild "%sln%" /p:Configuration=!Configuration! /p:Platform=!Platform! +msbuild "%sln%" ^ + /nologo ^ + /v:minimal ^ + /m ^ + /p:Configuration=!Configuration! ^ + /p:Platform=!Platform! ^ + /t:Clean,Build ^ + || goto :ERROR + +if not exist "!BIN!\datagen.exe" ( echo FAIL: "!BIN!\datagen.exe" && goto :ERROR ) +if not exist "!BIN!\frametest.exe" ( echo FAIL: "!BIN!\frametest.exe" && goto :ERROR ) +if not exist "!BIN!\fullbench-dll.exe" ( echo FAIL: "!BIN!\fullbench-dll.exe" && goto :ERROR ) +if not exist "!BIN!\fullbench.exe" ( echo FAIL: "!BIN!\fullbench.exe" && goto :ERROR ) +if not exist "!BIN!\fuzzer.exe" ( echo FAIL: "!BIN!\fuzzer.exe" && goto :ERROR ) +if not exist "!BIN!\liblz4.dll" ( echo FAIL: "!BIN!\liblz4.dll" && goto :ERROR ) +if not exist "!BIN!\liblz4.lib" ( echo FAIL: "!BIN!\liblz4.lib" && goto :ERROR ) +if not exist "!BIN!\liblz4_static.lib" ( echo FAIL: "!BIN!\liblz4_static.lib" && goto :ERROR ) +if not exist "!BIN!\lz4.exe" ( echo FAIL: "!BIN!\lz4.exe" && goto :ERROR ) + +set /a errorno=0 +goto :END + +:ERROR + +:END +exit /B %errorno% diff --git a/vendor/lz4/build/VS2022/_setup.bat b/vendor/lz4/build/VS2022/_setup.bat new file mode 100644 index 0000000..b4dda51 --- /dev/null +++ b/vendor/lz4/build/VS2022/_setup.bat @@ -0,0 +1,35 @@ +set /a errorno=1 +for /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "esc=%%E" + +rem https://github.com/Microsoft/vswhere +rem https://github.com/microsoft/vswhere/wiki/Find-VC#batch + +set "vswhere=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" +if not exist "%vswhere%" ( + echo Failed to find "vswhere.exe". Please install the latest version of Visual Studio. + goto :ERROR +) + +set "InstallDir=" +for /f "usebackq tokens=*" %%i in ( + `"%vswhere%" -latest ^ + -products * ^ + -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ^ + -property installationPath` +) do ( + set "InstallDir=%%i" +) +if "%InstallDir%" == "" ( + echo Failed to find Visual C++. Please install the latest version of Visual C++. + goto :ERROR +) + +call "%InstallDir%\VC\Auxiliary\Build\vcvars64.bat" || goto :ERROR + +set /a errorno=0 +goto :END + +:ERROR + +:END +exit /B %errorno% diff --git a/vendor/lz4/build/VS2022/_test.bat b/vendor/lz4/build/VS2022/_test.bat new file mode 100644 index 0000000..4614fa9 --- /dev/null +++ b/vendor/lz4/build/VS2022/_test.bat @@ -0,0 +1,38 @@ +set /a errorno=1 +for /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "esc=%%E" + +@rem set "Configuration=Debug" +@rem set "Platform=Win32" + +set "BIN=.\bin\!Platform!_!Configuration!" +set "TEST_FILES=..\..\tests\COPYING" + +echo !BIN!\lz4 -h + !BIN!\lz4 -h || goto :ERROR + +echo !BIN!\lz4 -i1b + !BIN!\lz4 -i1b || goto :ERROR + +echo !BIN!\lz4 -i1b5 + !BIN!\lz4 -i1b5 || goto :ERROR + +echo !BIN!\lz4 -i1b10 + !BIN!\lz4 -i1b10 || goto :ERROR + +echo !BIN!\lz4 -i1b15 + !BIN!\lz4 -i1b15 || goto :ERROR + +echo fullbench +!BIN!\fullbench.exe --no-prompt -i1 %TEST_FILES% || goto :ERROR + +echo fuzzer +!BIN!\fuzzer.exe -v -T30s || goto :ERROR + + +set /a errorno=0 +goto :END + +:ERROR + +:END +exit /B %errorno% diff --git a/vendor/lz4/build/VS2022/build-and-test-win32-debug.bat b/vendor/lz4/build/VS2022/build-and-test-win32-debug.bat new file mode 100644 index 0000000..e745f87 --- /dev/null +++ b/vendor/lz4/build/VS2022/build-and-test-win32-debug.bat @@ -0,0 +1,26 @@ +@setlocal enabledelayedexpansion +@echo off +set /a errorno=1 +for /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "esc=%%E" + +call _setup.bat || goto :ERROR + +set "Configuration=Debug" +set "Platform=Win32" + +call _build.bat || goto :ERROR +call _test.bat || goto :ERROR + + +echo Build Status -%esc%[92m SUCCEEDED %esc%[0m +set /a errorno=0 +goto :END + + +:ERROR +echo Abort by error. +echo Build Status -%esc%[91m ERROR %esc%[0m + + +:END +exit /B %errorno% diff --git a/vendor/lz4/build/VS2022/build-and-test-win32-release.bat b/vendor/lz4/build/VS2022/build-and-test-win32-release.bat new file mode 100644 index 0000000..f21007b --- /dev/null +++ b/vendor/lz4/build/VS2022/build-and-test-win32-release.bat @@ -0,0 +1,26 @@ +@setlocal enabledelayedexpansion +@echo off +set /a errorno=1 +for /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "esc=%%E" + +call _setup.bat || goto :ERROR + +set "Configuration=Release" +set "Platform=Win32" + +call _build.bat || goto :ERROR +call _test.bat || goto :ERROR + + +echo Build Status -%esc%[92m SUCCEEDED %esc%[0m +set /a errorno=0 +goto :END + + +:ERROR +echo Abort by error. +echo Build Status -%esc%[91m ERROR %esc%[0m + + +:END +exit /B %errorno% diff --git a/vendor/lz4/build/VS2022/build-and-test-x64-debug.bat b/vendor/lz4/build/VS2022/build-and-test-x64-debug.bat new file mode 100644 index 0000000..9d64a6f --- /dev/null +++ b/vendor/lz4/build/VS2022/build-and-test-x64-debug.bat @@ -0,0 +1,26 @@ +@setlocal enabledelayedexpansion +@echo off +set /a errorno=1 +for /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "esc=%%E" + +call _setup.bat || goto :ERROR + +set "Configuration=Debug" +set "Platform=x64" + +call _build.bat || goto :ERROR +call _test.bat || goto :ERROR + + +echo Build Status -%esc%[92m SUCCEEDED %esc%[0m +set /a errorno=0 +goto :END + + +:ERROR +echo Abort by error. +echo Build Status -%esc%[91m ERROR %esc%[0m + + +:END +exit /B %errorno% diff --git a/vendor/lz4/build/VS2022/build-and-test-x64-release.bat b/vendor/lz4/build/VS2022/build-and-test-x64-release.bat new file mode 100644 index 0000000..3ebb18f --- /dev/null +++ b/vendor/lz4/build/VS2022/build-and-test-x64-release.bat @@ -0,0 +1,26 @@ +@setlocal enabledelayedexpansion +@echo off +set /a errorno=1 +for /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "esc=%%E" + +call _setup.bat || goto :ERROR + +set "Configuration=Release" +set "Platform=x64" + +call _build.bat || goto :ERROR +call _test.bat || goto :ERROR + + +echo Build Status -%esc%[92m SUCCEEDED %esc%[0m +set /a errorno=0 +goto :END + + +:ERROR +echo Abort by error. +echo Build Status -%esc%[91m ERROR %esc%[0m + + +:END +exit /B %errorno% diff --git a/vendor/lz4/build/VS2022/datagen/datagen.vcxproj b/vendor/lz4/build/VS2022/datagen/datagen.vcxproj new file mode 100644 index 0000000..a65a5d5 --- /dev/null +++ b/vendor/lz4/build/VS2022/datagen/datagen.vcxproj @@ -0,0 +1,177 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {D745AE2F-596A-403A-9B91-81A8C6779243} + Win32Proj + datagen + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + Unicode + v143 + + + Application + true + Unicode + v143 + + + Application + false + Unicode + true + v143 + + + Application + false + Unicode + true + v143 + + + + + + + + + + + + + + + + + + + true + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + true + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + false + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\programs;$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + + + Console + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreadedDebug + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreaded + + + Console + true + true + true + + + + + + + + + + + + + + + + + diff --git a/vendor/lz4/build/VS2022/frametest/frametest.vcxproj b/vendor/lz4/build/VS2022/frametest/frametest.vcxproj new file mode 100644 index 0000000..6b7ff75 --- /dev/null +++ b/vendor/lz4/build/VS2022/frametest/frametest.vcxproj @@ -0,0 +1,180 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7} + Win32Proj + frametest + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + Unicode + v143 + + + Application + true + Unicode + v143 + + + Application + false + Unicode + true + v143 + + + Application + false + Unicode + true + v143 + + + + + + + + + + + + + + + + + + + true + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + true + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + false + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + + + Console + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreadedDebug + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreaded + + + Console + true + true + true + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/lz4/build/VS2022/fullbench-dll/fullbench-dll.vcxproj b/vendor/lz4/build/VS2022/fullbench-dll/fullbench-dll.vcxproj new file mode 100644 index 0000000..143dc06 --- /dev/null +++ b/vendor/lz4/build/VS2022/fullbench-dll/fullbench-dll.vcxproj @@ -0,0 +1,184 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {13992FD2-077E-4954-B065-A428198201A9} + Win32Proj + fullbench-dll + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + Unicode + v143 + + + Application + true + Unicode + v143 + + + Application + false + Unicode + true + v143 + + + Application + false + Unicode + true + v143 + + + + + + + + + + + + + + + + + + + true + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + true + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + false + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;LZ4_DLL_IMPORT=1;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + + + Console + true + $(SolutionDir)bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + liblz4.lib;%(AdditionalDependencies) + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;LZ4_DLL_IMPORT=1;%(PreprocessorDefinitions) + true + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreadedDebug + + + Console + true + $(SolutionDir)bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + liblz4.lib;%(AdditionalDependencies) + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;LZ4_DLL_IMPORT=1;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + $(SolutionDir)bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + liblz4.lib;%(AdditionalDependencies) + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;LZ4_DLL_IMPORT=1;%(PreprocessorDefinitions) + false + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreaded + + + Console + true + true + true + $(SolutionDir)bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + liblz4.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/lz4/build/VS2022/fullbench/fullbench.vcxproj b/vendor/lz4/build/VS2022/fullbench/fullbench.vcxproj new file mode 100644 index 0000000..57f4b5a --- /dev/null +++ b/vendor/lz4/build/VS2022/fullbench/fullbench.vcxproj @@ -0,0 +1,180 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E} + Win32Proj + fullbench + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + Unicode + v143 + + + Application + true + Unicode + v143 + + + Application + false + Unicode + true + v143 + + + Application + false + Unicode + true + v143 + + + + + + + + + + + + + + + + + + + true + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + true + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + false + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + + + Console + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreadedDebug + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreaded + + + Console + true + true + true + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/lz4/build/VS2022/fuzzer/fuzzer.vcxproj b/vendor/lz4/build/VS2022/fuzzer/fuzzer.vcxproj new file mode 100644 index 0000000..83482c2 --- /dev/null +++ b/vendor/lz4/build/VS2022/fuzzer/fuzzer.vcxproj @@ -0,0 +1,177 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {18B9F1A7-9C66-4352-898B-30804DADE0FD} + Win32Proj + fuzzer + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + Application + true + Unicode + v143 + + + Application + true + Unicode + v143 + + + Application + false + Unicode + true + v143 + + + Application + false + Unicode + true + v143 + + + + + + + + + + + + + + + + + + + true + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + true + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + false + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + + + Console + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreadedDebug + + + Console + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + Console + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreaded + + + Console + true + true + true + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/lz4/build/VS2022/liblz4-dll/liblz4-dll.rc b/vendor/lz4/build/VS2022/liblz4-dll/liblz4-dll.rc new file mode 100644 index 0000000..e089c24 --- /dev/null +++ b/vendor/lz4/build/VS2022/liblz4-dll/liblz4-dll.rc @@ -0,0 +1,51 @@ +// Microsoft Visual C++ generated resource script. +// + +#include "lz4.h" /* LZ4_VERSION_STRING */ +#define APSTUDIO_READONLY_SYMBOLS +#include "verrsrc.h" +#undef APSTUDIO_READONLY_SYMBOLS + + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE 9, 1 + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION LZ4_VERSION_MAJOR,LZ4_VERSION_MINOR,LZ4_VERSION_RELEASE,0 + PRODUCTVERSION LZ4_VERSION_MAJOR,LZ4_VERSION_MINOR,LZ4_VERSION_RELEASE,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "Yann Collet" + VALUE "FileDescription", "Extremely fast compression" + VALUE "FileVersion", LZ4_VERSION_STRING + VALUE "InternalName", "lz4.dll" + VALUE "LegalCopyright", "Copyright (C) 2013-2020, Yann Collet" + VALUE "OriginalFilename", "lz4.dll" + VALUE "ProductName", "LZ4" + VALUE "ProductVersion", LZ4_VERSION_STRING + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1200 + END +END + +#endif diff --git a/vendor/lz4/build/VS2022/liblz4-dll/liblz4-dll.vcxproj b/vendor/lz4/build/VS2022/liblz4-dll/liblz4-dll.vcxproj new file mode 100644 index 0000000..532ac75 --- /dev/null +++ b/vendor/lz4/build/VS2022/liblz4-dll/liblz4-dll.vcxproj @@ -0,0 +1,183 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {9800039D-4AAA-43A4-BB78-FEF6F4836927} + Win32Proj + liblz4-dll + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + liblz4-dll + + + + DynamicLibrary + true + Unicode + v143 + + + DynamicLibrary + true + Unicode + v143 + + + DynamicLibrary + false + Unicode + true + v143 + + + DynamicLibrary + false + Unicode + true + v143 + + + + + + + + + + + + + + + + + + + true + liblz4 + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + true + liblz4 + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + false + liblz4 + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + liblz4 + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + + + + Level4 + Disabled + WIN32;_DEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + + + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions) + true + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreadedDebug + + + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions) + false + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreaded + + + true + true + true + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/lz4/build/VS2022/liblz4/liblz4.vcxproj b/vendor/lz4/build/VS2022/liblz4/liblz4.vcxproj new file mode 100644 index 0000000..fdddaaa --- /dev/null +++ b/vendor/lz4/build/VS2022/liblz4/liblz4.vcxproj @@ -0,0 +1,179 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476} + Win32Proj + liblz4 + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + + + + StaticLibrary + true + Unicode + v143 + + + StaticLibrary + true + Unicode + v143 + + + StaticLibrary + false + Unicode + true + v143 + + + StaticLibrary + false + Unicode + true + v143 + + + + + + + + + + + + + + + + + + + true + liblz4_static + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + true + liblz4_static + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + false + liblz4_static + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + false + liblz4_static + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + true + + + + + + Level4 + Disabled + WIN32;_DEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions) + true + false + MultiThreadedDebug + + + true + + + + + + + Level4 + Disabled + WIN32;_DEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions) + true + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreadedDebug + + + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions) + false + false + MultiThreaded + + + true + true + true + + + + + Level4 + + + MaxSpeed + true + true + WIN32;NDEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions) + false + true + /analyze:stacksize295252 %(AdditionalOptions) + MultiThreaded + + + true + true + true + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/lz4/build/VS2022/lz4.sln b/vendor/lz4/build/VS2022/lz4.sln new file mode 100644 index 0000000..10f8ec1 --- /dev/null +++ b/vendor/lz4/build/VS2022/lz4.sln @@ -0,0 +1,106 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.6.33712.159 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblz4-dll", "liblz4-dll\liblz4-dll.vcxproj", "{9800039D-4AAA-43A4-BB78-FEF6F4836927}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblz4", "liblz4\liblz4.vcxproj", "{9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fuzzer", "fuzzer\fuzzer.vcxproj", "{18B9F1A7-9C66-4352-898B-30804DADE0FD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fullbench", "fullbench\fullbench.vcxproj", "{6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "frametest", "frametest\frametest.vcxproj", "{39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "datagen", "datagen\datagen.vcxproj", "{D745AE2F-596A-403A-9B91-81A8C6779243}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fullbench-dll", "fullbench-dll\fullbench-dll.vcxproj", "{13992FD2-077E-4954-B065-A428198201A9}" + ProjectSection(ProjectDependencies) = postProject + {9800039D-4AAA-43A4-BB78-FEF6F4836927} = {9800039D-4AAA-43A4-BB78-FEF6F4836927} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lz4", "lz4\lz4.vcxproj", "{60A3115E-B988-41EE-8815-F4D4F253D866}" + ProjectSection(ProjectDependencies) = postProject + {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476} = {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Debug|Win32.ActiveCfg = Debug|Win32 + {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Debug|Win32.Build.0 = Debug|Win32 + {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Debug|x64.ActiveCfg = Debug|x64 + {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Debug|x64.Build.0 = Debug|x64 + {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Release|Win32.ActiveCfg = Release|Win32 + {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Release|Win32.Build.0 = Release|Win32 + {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Release|x64.ActiveCfg = Release|x64 + {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Release|x64.Build.0 = Release|x64 + {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Debug|Win32.ActiveCfg = Debug|Win32 + {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Debug|Win32.Build.0 = Debug|Win32 + {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Debug|x64.ActiveCfg = Debug|x64 + {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Debug|x64.Build.0 = Debug|x64 + {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Release|Win32.ActiveCfg = Release|Win32 + {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Release|Win32.Build.0 = Release|Win32 + {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Release|x64.ActiveCfg = Release|x64 + {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Release|x64.Build.0 = Release|x64 + {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Debug|Win32.ActiveCfg = Debug|Win32 + {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Debug|Win32.Build.0 = Debug|Win32 + {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Debug|x64.ActiveCfg = Debug|x64 + {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Debug|x64.Build.0 = Debug|x64 + {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Release|Win32.ActiveCfg = Release|Win32 + {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Release|Win32.Build.0 = Release|Win32 + {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Release|x64.ActiveCfg = Release|x64 + {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Release|x64.Build.0 = Release|x64 + {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Debug|Win32.ActiveCfg = Debug|Win32 + {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Debug|Win32.Build.0 = Debug|Win32 + {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Debug|x64.ActiveCfg = Debug|x64 + {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Debug|x64.Build.0 = Debug|x64 + {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Release|Win32.ActiveCfg = Release|Win32 + {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Release|Win32.Build.0 = Release|Win32 + {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Release|x64.ActiveCfg = Release|x64 + {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Release|x64.Build.0 = Release|x64 + {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Debug|Win32.ActiveCfg = Debug|Win32 + {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Debug|Win32.Build.0 = Debug|Win32 + {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Debug|x64.ActiveCfg = Debug|x64 + {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Debug|x64.Build.0 = Debug|x64 + {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Release|Win32.ActiveCfg = Release|Win32 + {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Release|Win32.Build.0 = Release|Win32 + {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Release|x64.ActiveCfg = Release|x64 + {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Release|x64.Build.0 = Release|x64 + {D745AE2F-596A-403A-9B91-81A8C6779243}.Debug|Win32.ActiveCfg = Debug|Win32 + {D745AE2F-596A-403A-9B91-81A8C6779243}.Debug|Win32.Build.0 = Debug|Win32 + {D745AE2F-596A-403A-9B91-81A8C6779243}.Debug|x64.ActiveCfg = Debug|x64 + {D745AE2F-596A-403A-9B91-81A8C6779243}.Debug|x64.Build.0 = Debug|x64 + {D745AE2F-596A-403A-9B91-81A8C6779243}.Release|Win32.ActiveCfg = Release|Win32 + {D745AE2F-596A-403A-9B91-81A8C6779243}.Release|Win32.Build.0 = Release|Win32 + {D745AE2F-596A-403A-9B91-81A8C6779243}.Release|x64.ActiveCfg = Release|x64 + {D745AE2F-596A-403A-9B91-81A8C6779243}.Release|x64.Build.0 = Release|x64 + {13992FD2-077E-4954-B065-A428198201A9}.Debug|Win32.ActiveCfg = Debug|Win32 + {13992FD2-077E-4954-B065-A428198201A9}.Debug|Win32.Build.0 = Debug|Win32 + {13992FD2-077E-4954-B065-A428198201A9}.Debug|x64.ActiveCfg = Debug|x64 + {13992FD2-077E-4954-B065-A428198201A9}.Debug|x64.Build.0 = Debug|x64 + {13992FD2-077E-4954-B065-A428198201A9}.Release|Win32.ActiveCfg = Release|Win32 + {13992FD2-077E-4954-B065-A428198201A9}.Release|Win32.Build.0 = Release|Win32 + {13992FD2-077E-4954-B065-A428198201A9}.Release|x64.ActiveCfg = Release|x64 + {13992FD2-077E-4954-B065-A428198201A9}.Release|x64.Build.0 = Release|x64 + {60A3115E-B988-41EE-8815-F4D4F253D866}.Debug|Win32.ActiveCfg = Debug|Win32 + {60A3115E-B988-41EE-8815-F4D4F253D866}.Debug|Win32.Build.0 = Debug|Win32 + {60A3115E-B988-41EE-8815-F4D4F253D866}.Debug|x64.ActiveCfg = Debug|x64 + {60A3115E-B988-41EE-8815-F4D4F253D866}.Debug|x64.Build.0 = Debug|x64 + {60A3115E-B988-41EE-8815-F4D4F253D866}.Release|Win32.ActiveCfg = Release|Win32 + {60A3115E-B988-41EE-8815-F4D4F253D866}.Release|Win32.Build.0 = Release|Win32 + {60A3115E-B988-41EE-8815-F4D4F253D866}.Release|x64.ActiveCfg = Release|x64 + {60A3115E-B988-41EE-8815-F4D4F253D866}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BBC259B2-BABF-47CD-8A6A-7B8318A803AC} + EndGlobalSection +EndGlobal diff --git a/vendor/lz4/build/VS2022/lz4/lz4.rc b/vendor/lz4/build/VS2022/lz4/lz4.rc new file mode 100644 index 0000000..5eec36b --- /dev/null +++ b/vendor/lz4/build/VS2022/lz4/lz4.rc @@ -0,0 +1,51 @@ +// Microsoft Visual C++ generated resource script. +// + +#include "lz4.h" /* LZ4_VERSION_STRING */ +#define APSTUDIO_READONLY_SYMBOLS +#include "verrsrc.h" +#undef APSTUDIO_READONLY_SYMBOLS + + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE 9, 1 + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION LZ4_VERSION_MAJOR,LZ4_VERSION_MINOR,LZ4_VERSION_RELEASE,0 + PRODUCTVERSION LZ4_VERSION_MAJOR,LZ4_VERSION_MINOR,LZ4_VERSION_RELEASE,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "Yann Collet" + VALUE "FileDescription", "Extremely fast compression" + VALUE "FileVersion", LZ4_VERSION_STRING + VALUE "InternalName", "lz4.exe" + VALUE "LegalCopyright", "Copyright (C) 2013-2020, Yann Collet" + VALUE "OriginalFilename", "lz4.exe" + VALUE "ProductName", "LZ4" + VALUE "ProductVersion", LZ4_VERSION_STRING + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1200 + END +END + +#endif diff --git a/vendor/lz4/build/VS2022/lz4/lz4.vcxproj b/vendor/lz4/build/VS2022/lz4/lz4.vcxproj new file mode 100644 index 0000000..3c964b4 --- /dev/null +++ b/vendor/lz4/build/VS2022/lz4/lz4.vcxproj @@ -0,0 +1,189 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {60A3115E-B988-41EE-8815-F4D4F253D866} + lz4 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + false + Unicode + + + Application + true + v143 + MultiByte + + + Application + false + v143 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + false + + + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + + + $(SolutionDir)bin\$(Platform)_$(Configuration)\ + $(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\ + $(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(SolutionDir)..\..\programs;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath); + false + + + + Level4 + Disabled + true + true + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + true + Console + false + false + $(ProjectDir)..\bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + liblz4_static.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + + + + + Level3 + Disabled + true + true + + + $(ProjectDir)..\bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + liblz4_static.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + true + true + true + Console + $(ProjectDir)..\bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + liblz4_static.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + true + true + + + true + true + $(ProjectDir)..\bin\$(Platform)_$(Configuration);%(AdditionalLibraryDirectories) + liblz4_static.lib;$(CoreLibraryDependencies);%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/lz4/build/cmake/.gitignore b/vendor/lz4/build/cmake/.gitignore new file mode 100644 index 0000000..0ad8240 --- /dev/null +++ b/vendor/lz4/build/cmake/.gitignore @@ -0,0 +1,10 @@ +# cmake build artefact + +CMakeCache.txt +CMakeFiles +*.cmake +Makefile +liblz4.pc +lz4c +install_manifest.txt +build diff --git a/vendor/lz4/build/cmake/CMakeLists.txt b/vendor/lz4/build/cmake/CMakeLists.txt new file mode 100644 index 0000000..15418e6 --- /dev/null +++ b/vendor/lz4/build/cmake/CMakeLists.txt @@ -0,0 +1,362 @@ +# CMake support for LZ4 +# +# To the extent possible under law, the author(s) have dedicated all +# copyright and related and neighboring rights to this software to +# the public domain worldwide. This software is distributed without +# any warranty. +# +# For details, see . + + +# Use range version specification for policy control while maintaining +# compatibility with older CMake versions +cmake_minimum_required(VERSION 3.5...4.0.2) + +set(LZ4_TOP_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..") + +#----------------------------------------------------------------------------- +# VERSION EXTRACTION - Parse version information from header file +#----------------------------------------------------------------------------- +function(parse_lz4_version VERSION_TYPE) + file(STRINGS "${LZ4_TOP_SOURCE_DIR}/lib/lz4.h" version_line REGEX "^#define LZ4_VERSION_${VERSION_TYPE} +([0-9]+).*$") + string(REGEX REPLACE "^#define LZ4_VERSION_${VERSION_TYPE} +([0-9]+).*$" "\\1" version_number "${version_line}") + set(LZ4_VERSION_${VERSION_TYPE} ${version_number} PARENT_SCOPE) +endfunction() + +foreach(version_type IN ITEMS MAJOR MINOR RELEASE) + parse_lz4_version(${version_type}) +endforeach() + +set(LZ4_VERSION_STRING "${LZ4_VERSION_MAJOR}.${LZ4_VERSION_MINOR}.${LZ4_VERSION_RELEASE}") +mark_as_advanced(LZ4_VERSION_STRING LZ4_VERSION_MAJOR LZ4_VERSION_MINOR LZ4_VERSION_RELEASE) + +message(STATUS "Creating build script for LZ4 version: ${LZ4_VERSION_STRING}") + +project(LZ4 VERSION ${LZ4_VERSION_STRING} LANGUAGES C) + +#----------------------------------------------------------------------------- +# DEFAULT BUILD TYPE - Set Release as default when no build type is specified +#----------------------------------------------------------------------------- +# Set a default build type if none was specified +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message(STATUS "Setting build type to 'Release' as none was specified.") + set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE) + # Set the possible values of build type for cmake-gui + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +endif() + +#----------------------------------------------------------------------------- +# BUILD OPTIONS - Configure build targets and features +#----------------------------------------------------------------------------- +option(LZ4_BUILD_CLI "Build lz4 program" ON) +option(LZ4_BUILD_LEGACY_LZ4C "Build lz4c program with legacy argument support" OFF) + + +# Determine if LZ4 is being built as part of another project. +# If LZ4 is bundled in another project, we don't want to install anything. +# Default behavior can be overridden by setting the LZ4_BUNDLED_MODE variable. +if(NOT DEFINED LZ4_BUNDLED_MODE) + get_directory_property(LZ4_IS_SUBPROJECT PARENT_DIRECTORY) + if(LZ4_IS_SUBPROJECT) + set(LZ4_BUNDLED_MODE ON) + else() + set(LZ4_BUNDLED_MODE OFF) + endif() +endif() +mark_as_advanced(LZ4_BUNDLED_MODE) + +#----------------------------------------------------------------------------- +# PACKAGING - CPack configuration +#----------------------------------------------------------------------------- +if(NOT LZ4_BUNDLED_MODE AND NOT CPack_CMake_INCLUDED) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LZ4 compression library") + set(CPACK_PACKAGE_DESCRIPTION_FILE "${LZ4_TOP_SOURCE_DIR}/README.md") + set(CPACK_RESOURCE_FILE_LICENSE "${LZ4_TOP_SOURCE_DIR}/LICENSE") + set(CPACK_PACKAGE_VERSION_MAJOR ${LZ4_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${LZ4_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${LZ4_VERSION_RELEASE}) + include(CPack) +endif(NOT LZ4_BUNDLED_MODE AND NOT CPack_CMake_INCLUDED) + +#----------------------------------------------------------------------------- +# LIBRARY TYPE CONFIGURATION - Static vs Shared libraries +#----------------------------------------------------------------------------- +# Allow people to choose whether to build shared or static libraries +# via the BUILD_SHARED_LIBS option unless we are in bundled mode, in +# which case we always use static libraries. +include(CMakeDependentOption) +CMAKE_DEPENDENT_OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON "NOT LZ4_BUNDLED_MODE" OFF) +CMAKE_DEPENDENT_OPTION(BUILD_STATIC_LIBS "Build static libraries" OFF "BUILD_SHARED_LIBS" ON) + +if(NOT BUILD_SHARED_LIBS AND NOT BUILD_STATIC_LIBS) + message(FATAL_ERROR "Both BUILD_SHARED_LIBS and BUILD_STATIC_LIBS have been disabled") +endif(NOT BUILD_SHARED_LIBS AND NOT BUILD_STATIC_LIBS) + +#----------------------------------------------------------------------------- +# SOURCE FILES & DIRECTORIES - Path setup and source file collection +#----------------------------------------------------------------------------- +set(LZ4_LIB_SOURCE_DIR "${LZ4_TOP_SOURCE_DIR}/lib") +set(LZ4_PROG_SOURCE_DIR "${LZ4_TOP_SOURCE_DIR}/programs") + +include_directories("${LZ4_LIB_SOURCE_DIR}") + +# CLI sources +file(GLOB LZ4_SOURCES + "${LZ4_LIB_SOURCE_DIR}/*.c") +file(GLOB LZ4_CLI_SOURCES + "${LZ4_PROG_SOURCE_DIR}/*.c") +list(APPEND LZ4_CLI_SOURCES ${LZ4_SOURCES}) # LZ4_CLI always use liblz4 sources directly. + +#----------------------------------------------------------------------------- +# POSITION INDEPENDENT CODE - PIC settings for static libraries +#----------------------------------------------------------------------------- +# Whether to use position independent code for the static library. If +# we're building a shared library this is ignored and PIC is always +# used. +if(NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE OR CMAKE_POSITION_INDEPENDENT_CODE) + set(LZ4_POSITION_INDEPENDENT_LIB_DEFAULT ON) +else() + set(LZ4_POSITION_INDEPENDENT_LIB_DEFAULT OFF) +endif(NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE OR CMAKE_POSITION_INDEPENDENT_CODE) + +option(LZ4_POSITION_INDEPENDENT_LIB "Use position independent code for static library (if applicable)" ${LZ4_POSITION_INDEPENDENT_LIB_DEFAULT}) + +#----------------------------------------------------------------------------- +# TARGETS - Library and executable targets +#----------------------------------------------------------------------------- +# liblz4 +include(GNUInstallDirs) +set(LZ4_LIBRARIES_BUILT) +if(BUILD_SHARED_LIBS) + add_library(lz4_shared SHARED ${LZ4_SOURCES}) + target_include_directories(lz4_shared + PUBLIC $ + INTERFACE $) + set_target_properties(lz4_shared PROPERTIES + OUTPUT_NAME lz4 + SOVERSION "${LZ4_VERSION_MAJOR}" + VERSION "${LZ4_VERSION_STRING}") + if(MSVC) + target_compile_definitions(lz4_shared PRIVATE + LZ4_DLL_EXPORT=1) + endif(MSVC) + list(APPEND LZ4_LIBRARIES_BUILT lz4_shared) +endif() +if(BUILD_STATIC_LIBS) + set(STATIC_LIB_NAME lz4) + if(MSVC AND BUILD_SHARED_LIBS) + set(STATIC_LIB_NAME lz4_static) + endif(MSVC AND BUILD_SHARED_LIBS) + add_library(lz4_static STATIC ${LZ4_SOURCES}) + target_include_directories(lz4_static + PUBLIC $ + INTERFACE $) + set_target_properties(lz4_static PROPERTIES + OUTPUT_NAME ${STATIC_LIB_NAME} + POSITION_INDEPENDENT_CODE ${LZ4_POSITION_INDEPENDENT_LIB}) + list(APPEND LZ4_LIBRARIES_BUILT lz4_static) +endif() +# Add unified target. +add_library(lz4 INTERFACE) +list(APPEND LZ4_LIBRARIES_BUILT lz4) +if(BUILD_SHARED_LIBS) + target_link_libraries(lz4 INTERFACE lz4_shared) +else() + target_link_libraries(lz4 INTERFACE lz4_static) +endif(BUILD_SHARED_LIBS) + +#----------------------------------------------------------------------------- +# DEBUG CONFIGURATION - Configurable LZ4_DEBUG level +#----------------------------------------------------------------------------- +# LZ4_DEBUG levels: +# 0 - Disable everything (default for Release) +# 1 - Enable assert() statements +# 2-8 - Enable debug traces with increasing verbosity +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(LZ4_DEBUG_LEVEL_DEFAULT 1) +else() + set(LZ4_DEBUG_LEVEL_DEFAULT 0) +endif() + +set(LZ4_DEBUG_LEVEL ${LZ4_DEBUG_LEVEL_DEFAULT} CACHE STRING + "LZ4 debug level: 0=disabled, 1=assert(), 2-8=debug traces with increasing verbosity") +set_property(CACHE LZ4_DEBUG_LEVEL PROPERTY STRINGS "0" "1" "2" "3" "4" "5" "6" "7" "8") + +# Apply LZ4_DEBUG configuration if level > 0 +if(LZ4_DEBUG_LEVEL GREATER 0) + if(MSVC) + add_definitions(/DLZ4_DEBUG=${LZ4_DEBUG_LEVEL}) + else() + add_definitions(-DLZ4_DEBUG=${LZ4_DEBUG_LEVEL}) + endif() +endif() + +#----------------------------------------------------------------------------- +# NAMESPACE CONFIGURATION - xxHash namespace settings +#----------------------------------------------------------------------------- +# xxhash namespace +if(BUILD_SHARED_LIBS) + target_compile_definitions(lz4_shared PRIVATE + XXH_NAMESPACE=LZ4_) +endif(BUILD_SHARED_LIBS) +if(BUILD_STATIC_LIBS) + target_compile_definitions(lz4_static PRIVATE + XXH_NAMESPACE=LZ4_) +endif(BUILD_STATIC_LIBS) + +#----------------------------------------------------------------------------- +# CLI EXECUTABLES - Configuring command-line programs +#----------------------------------------------------------------------------- +# lz4 +if(LZ4_BUILD_CLI) + set(LZ4_PROGRAMS_BUILT lz4cli) + add_executable(lz4cli ${LZ4_CLI_SOURCES}) + set_target_properties(lz4cli PROPERTIES OUTPUT_NAME lz4) +endif(LZ4_BUILD_CLI) + +# lz4c +if(LZ4_BUILD_LEGACY_LZ4C) + list(APPEND LZ4_PROGRAMS_BUILT lz4c) + add_executable(lz4c ${LZ4_CLI_SOURCES}) + set_target_properties(lz4c PROPERTIES COMPILE_DEFINITIONS "ENABLE_LZ4C_LEGACY_OPTIONS") +endif(LZ4_BUILD_LEGACY_LZ4C) + +#----------------------------------------------------------------------------- +# COMPILER FLAGS - Configure warning flags and compiler-specific options +#----------------------------------------------------------------------------- +# Extra warning flags +if(MSVC) + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /W4") +else() + include(CheckCCompilerFlag) + foreach(flag + # GCC-style + -pedantic-errors + -Wall + -Wextra + -Wundef + -Wcast-qual + -Wcast-align + -Wshadow + -Wswitch-enum + -Wdeclaration-after-statement + -Wstrict-prototypes + -Wpointer-arith) + + # Because https://gcc.gnu.org/wiki/FAQ#wnowarning + string(REGEX REPLACE "\\-Wno\\-(.+)" "-W\\1" flag_to_test "${flag}") + string(REGEX REPLACE "[^a-zA-Z0-9]+" "_" test_name "CFLAG_${flag_to_test}") + + check_c_compiler_flag("${ADD_COMPILER_FLAGS_PREPEND} ${flag_to_test}" ${test_name}) + + if(${test_name}) + set(CMAKE_C_FLAGS_DEBUG "${flag} ${CMAKE_C_FLAGS_DEBUG}") + endif() + + unset(test_name) + unset(flag_to_test) + endforeach(flag) +endif(MSVC) + + +#----------------------------------------------------------------------------- +# INSTALLATION - Install targets, headers, and documentation +#----------------------------------------------------------------------------- +if(NOT LZ4_BUNDLED_MODE) + install(TARGETS ${LZ4_PROGRAMS_BUILT} + BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + install(TARGETS ${LZ4_LIBRARIES_BUILT} + EXPORT lz4Targets + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + install(FILES + "${LZ4_LIB_SOURCE_DIR}/lz4.h" + "${LZ4_LIB_SOURCE_DIR}/lz4hc.h" + "${LZ4_LIB_SOURCE_DIR}/lz4frame.h" + "${LZ4_LIB_SOURCE_DIR}/lz4file.h" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + install(FILES "${LZ4_PROG_SOURCE_DIR}/lz4.1" + DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/liblz4.pc" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + +#----------------------------------------------------------------------------- +# CMAKE PACKAGE CONFIG - Configure CMake package for find_package support +#----------------------------------------------------------------------------- + include(CMakePackageConfigHelpers) + write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/lz4ConfigVersion.cmake" + VERSION ${LZ4_VERSION_STRING} + COMPATIBILITY SameMajorVersion) + + set(LZ4_PKG_INSTALLDIR "${CMAKE_INSTALL_LIBDIR}/cmake/lz4") + configure_package_config_file( + "${CMAKE_CURRENT_LIST_DIR}/lz4Config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/lz4Config.cmake" + INSTALL_DESTINATION ${LZ4_PKG_INSTALLDIR}) + export(EXPORT lz4Targets + FILE ${CMAKE_CURRENT_BINARY_DIR}/lz4Targets.cmake + NAMESPACE LZ4::) + + install(EXPORT lz4Targets + FILE lz4Targets.cmake + NAMESPACE LZ4:: + DESTINATION ${LZ4_PKG_INSTALLDIR}) + install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/lz4Config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/lz4ConfigVersion.cmake + DESTINATION ${LZ4_PKG_INSTALLDIR}) + +#----------------------------------------------------------------------------- +# SYMLINKS - Create and install Unix symlinks and manpage aliases +#----------------------------------------------------------------------------- + # Install lz4cat and unlz4 symlinks on Unix systems + if(UNIX AND LZ4_BUILD_CLI) + foreach(cli_tool IN ITEMS lz4cat unlz4) + # Create a custom target for the symlink creation + add_custom_target("create_${cli_tool}_symlink" ALL + COMMAND ${CMAKE_COMMAND} -E create_symlink + $ ${cli_tool} + DEPENDS lz4cli + COMMENT "Creating symlink for ${cli_tool}" + VERBATIM) + + # Install the symlink into the binary installation directory + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${cli_tool}" + DESTINATION ${CMAKE_INSTALL_BINDIR} + RENAME ${cli_tool}) + endforeach() + + # create manpage aliases + foreach(f lz4cat unlz4) + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${f}.1" ".so man1/lz4.1\n") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${f}.1" + DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") + endforeach() + endif(UNIX AND LZ4_BUILD_CLI) +endif(NOT LZ4_BUNDLED_MODE) + +#----------------------------------------------------------------------------- +# PKG-CONFIG - Generate and install pkg-config file +#----------------------------------------------------------------------------- +# pkg-config +set(PREFIX "${CMAKE_INSTALL_PREFIX}") + +if("${CMAKE_INSTALL_FULL_LIBDIR}" STREQUAL "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + set(LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}") +else() + set(LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}") +endif("${CMAKE_INSTALL_FULL_LIBDIR}" STREQUAL "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + +if("${CMAKE_INSTALL_FULL_INCLUDEDIR}" STREQUAL "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") + set(INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") +else() + set(INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}") +endif("${CMAKE_INSTALL_FULL_INCLUDEDIR}" STREQUAL "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") + +# for liblz4.pc substitution +set(VERSION ${LZ4_VERSION_STRING}) +configure_file(${LZ4_LIB_SOURCE_DIR}/liblz4.pc.in liblz4.pc @ONLY) diff --git a/vendor/lz4/build/cmake/lz4Config.cmake.in b/vendor/lz4/build/cmake/lz4Config.cmake.in new file mode 100644 index 0000000..4b48032 --- /dev/null +++ b/vendor/lz4/build/cmake/lz4Config.cmake.in @@ -0,0 +1,10 @@ +@PACKAGE_INIT@ +include( "${CMAKE_CURRENT_LIST_DIR}/lz4Targets.cmake" ) +if(NOT TARGET lz4::lz4) + add_library(lz4::lz4 INTERFACE IMPORTED) + if("@BUILD_SHARED_LIBS@") + set_target_properties(lz4::lz4 PROPERTIES INTERFACE_LINK_LIBRARIES LZ4::lz4_shared) + else() + set_target_properties(lz4::lz4 PROPERTIES INTERFACE_LINK_LIBRARIES LZ4::lz4_static) + endif() +endif() diff --git a/vendor/lz4/build/make/README.md b/vendor/lz4/build/make/README.md new file mode 100644 index 0000000..6e90dbd --- /dev/null +++ b/vendor/lz4/build/make/README.md @@ -0,0 +1,69 @@ +# multiconf.make + +**multiconf.make** is a self-contained Makefile include that lets you build the **same targets under many different flag sets**—debug vs release, ASan vs UBSan, GCC vs Clang, etc.—without the usual “object-file soup.” +It hashes every combination of `CC/CXX`, `CFLAGS/CXXFLAGS`, `CPPFLAGS`, `LDFLAGS` and `LDLIBS` into a **dedicated cache directory**, so objects compiled with one configuration are never reused by another. Swap flags, rebuild, swap back—previous objects are still there and never collide. + +--- + +## Key Benefits + +| Why it matters | What multiconf.make does | +| --- | --- | +| **Isolated configs** | Stores objects into `cachedObjs//`, one directory per unique flag set. | +| **Fast switching** | Reusing an old config is instant—link only, no recompilation. | +| **Header deps** | Edits to headers trigger only needed rebuilds. | +| **One-liner targets** | Macros (`c_program`, `cxx_program`, …) hide all rule boilerplate. | +| **Parallel-ready** | Safe with `make -j`, no duplicate compiles of shared sources. | + +--- + +## Quick Start + +### 1 · List your sources + +```make +C_SRCDIRS := src src/cdeps # all .c are in these directories +CXX_SRCDIRS := src src/cxxdeps # all .cpp are in these directories +``` + +### 2 · Add and include + +```make +# root/Makefile +include multiconf.make +``` + +### 3 · Declare targets + +```make +app: +$(eval $(call c_program,app,app.o obj1.o obj2.o)) +test: +$(eval $(call cxx_program,test, test.o objcxx1.o objcxx2.o)) +``` + +### 4 · Build any config you like + +```sh +# Release with GCC +make CFLAGS="-O3" + +# Debug with Clang + AddressSanitizer (new cache dir) +make CC=clang CFLAGS="-g -O0 -fsanitize=address" + +# Switch back to GCC release (objects still valid, relink only) +make CFLAGS="-O3" +``` + +Objects for each command live in different sub-folders; nothing overlaps. + +--- + +## Additional capabilities + +| Command | Description | +| --- | --- | +| `make clean_cache` | Wipe **all** cached objects & deps (full rebuild next time) | +| `V=1` | Show full compile/link commands | + +--- diff --git a/vendor/lz4/build/make/lz4defs.make b/vendor/lz4/build/make/lz4defs.make new file mode 100644 index 0000000..1b7bf23 --- /dev/null +++ b/vendor/lz4/build/make/lz4defs.make @@ -0,0 +1,115 @@ +# ################################################################ +# LZ4 - Makefile common definitions +# Copyright (C) Yann Collet 2020 +# All rights reserved. +# +# BSD license +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, this +# list of conditions and the following disclaimer in the documentation and/or +# other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# You can contact the author at : +# - LZ4 source repository : https://github.com/lz4/lz4 +# - LZ4 forum froup : https://groups.google.com/forum/#!forum/lz4c +# ################################################################ + +UNAME ?= uname + +TARGET_OS ?= $(shell $(UNAME)) +ifeq ($(TARGET_OS),) + TARGET_OS ?= $(OS) +endif + +ifneq (,$(filter Windows%,$(TARGET_OS))) +LIBLZ4_NAME = liblz4-$(LIBVER_MAJOR) +LIBLZ4_EXP = liblz4.lib +WINBASED = yes +else +LIBLZ4_EXP = liblz4.dll.a + ifneq (,$(filter MINGW%,$(TARGET_OS))) +LIBLZ4_NAME = liblz4 +WINBASED = yes + else + ifneq (,$(filter MSYS%,$(TARGET_OS))) +LIBLZ4_NAME = msys-lz4-$(LIBVER_MAJOR) +WINBASED = yes + else + ifneq (,$(filter CYGWIN%,$(TARGET_OS))) +LIBLZ4_NAME = cyglz4-$(LIBVER_MAJOR) +WINBASED = yes + else +LIBLZ4_NAME = liblz4 +WINBASED = no +EXT = + endif + endif + endif +endif + +ifeq ($(WINBASED),yes) +EXT = .exe +WINDRES ?= windres +LDFLAGS += -Wl,--force-exe-suffix +endif + +LIBLZ4 = $(LIBLZ4_NAME).$(SHARED_EXT_VER) + +#determine if dev/nul based on host environment +ifneq (,$(filter MINGW% MSYS% CYGWIN%,$(shell $(UNAME)))) +VOID := /dev/null +else + ifneq (,$(filter Windows%,$(OS))) +VOID := nul + else +VOID := /dev/null + endif +endif + +ifneq (,$(filter Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD NetBSD DragonFly SunOS Haiku MidnightBSD MINGW% CYGWIN% MSYS% AIX,$(shell $(UNAME)))) +POSIX_ENV = Yes +else +POSIX_ENV = No +endif + +# Avoid symlinks when targeting Windows or building on a Windows host +ifeq ($(WINBASED),yes) +LN_SF = cp -p +else + ifneq (,$(filter MINGW% MSYS% CYGWIN%,$(shell $(UNAME)))) +LN_SF = cp -p + else + ifneq (,$(filter Windows%,$(OS))) +LN_SF = cp -p + else +LN_SF = ln -sf + endif + endif +endif + +ifneq (,$(filter $(shell $(UNAME)),SunOS)) +INSTALL ?= ginstall +else +INSTALL ?= install +endif + +INSTALL_PROGRAM ?= $(INSTALL) -m 755 +INSTALL_DATA ?= $(INSTALL) -m 644 +MAKE_DIR ?= $(INSTALL) -d -m 755 + diff --git a/vendor/lz4/build/make/multiconf.make b/vendor/lz4/build/make/multiconf.make new file mode 100644 index 0000000..1581f57 --- /dev/null +++ b/vendor/lz4/build/make/multiconf.make @@ -0,0 +1,258 @@ +# ########################################################################## +# multiconf.make +# Copyright (C) Yann Collet +# +# GPL v2 License +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# ########################################################################## + + +# Provides c_program(_shared_o) and cxx_program(_shared_o) target generation macros +# Provides static_library and c_dynamic_library target generation macros +# Support recompilation of only impacted units when an associated *.h is updated. +# Provides V=1 / VERBOSE=1 support. V=2 is used for debugging purposes. +# Complement target clean: delete objects and binaries created by this script + +# Requires: +# - C_SRCDIRS, CXX_SRCDIRS, ASM_SRCDIRS defined +# OR +# C_SRCS, CXX_SRCS and ASM_SRCS variables defined +# *and* vpath set to find all source files +# OR +# C_OBJS, CXX_OBJS and ASM_OBJS variables defined +# *and* vpath set to find all source files +# - directory `cachedObjs/` available to cache object files. +# alternatively: set CACHE_ROOT to some different value. +# Optional: +# - HASH can be set to a different custom hash program. + +# *_program*: generates a recipe for a target that will be built in a cache directory. +# The cache directory is automatically derived from CACHE_ROOT and list of flags and compilers. +# *_shared_o* variants are optional optimization variants, that share the same objects across multiple targets. +# However, as a consequence, all these objects must have exactly the same list of flags, +# which in practice means that there must be no target-level modification (like: target: CFLAGS += someFlag). +# If unsure, only use the standard variants, c_program and cxx_program. + +# All *_program* macro functions take up to 4 argument: +# - The name of the target +# - The list of object files to build in the cache directory +# - An optional list of dependencies for linking, that will not be built +# - An optional complementary recipe code, that will run after compilation and link + + +# Silent mode is default; use V = 1 or VERBOSE = 1 to see compilation lines +VERBOSE ?= $(V) +$(VERBOSE).SILENT: + +# Directory where object files will be built +CACHE_ROOT ?= cachedObjs + +# -------------------------------------------------------------------------------------------- + +# Dependency management +DEPFLAGS = -MT $@ -MMD -MP -MF + +# Include dependency files +include $(wildcard $(CACHE_ROOT)/**/*.d) +include $(wildcard $(CACHE_ROOT)/generic/*/*.d) + +# -------------------------------------------------------------------------------------------- + +# Automatic determination of build artifacts cache directory, keyed on build +# flags, so that we can do incremental, parallel builds of different binaries +# with different build flags without collisions. + +UNAME ?= $(shell uname) +ifeq ($(UNAME), Darwin) + HASH ?= md5 +else ifeq ($(UNAME), FreeBSD) + HASH ?= gmd5sum +else ifeq ($(UNAME), OpenBSD) + HASH ?= md5 +endif +HASH ?= md5sum + +HAVE_HASH := $(shell echo 1 | $(HASH) > /dev/null && echo 1 || echo 0) +ifeq ($(HAVE_HASH),0) + $(info warning : could not find HASH ($(HASH)), required to differentiate builds using different flags) + HASH_FUNC = generic/$(1) +else + HASH_FUNC = $(firstword $(shell echo $(2) | $(HASH) )) +endif + + +MKDIR ?= mkdir +LN ?= ln + +# -------------------------------------------------------------------------------------------- +# The following macros are used to create object files in the cache directory. +# The object files are named after the source file, but with a different path. + +# Create build directories on-demand. +# +# For some reason, make treats the directory as an intermediate file and tries +# to delete it. So we work around that by marking it "precious". Solution found +# here: +# http://ismail.badawi.io/blog/2017/03/28/automatic-directory-creation-in-make/ +.PRECIOUS: $(CACHE_ROOT)/%/. +$(CACHE_ROOT)/%/. : + $(MKDIR) -p $@ + + +define addTargetAsmObject # targetName, addlDeps +$$(if $$(filter 2,$$(V)),$$(info $$(call $(0),$(1),$(2)))) + +.PRECIOUS: $$(CACHE_ROOT)/%/$(1) +$$(CACHE_ROOT)/%/$(1) : $(1:.o=.S) $(2) | $$(CACHE_ROOT)/%/. + @echo AS $$@ + $$(CC) $$(CPPFLAGS) $$(CXXFLAGS) $$(DEPFLAGS) $$(CACHE_ROOT)/$$*/$(1:.o=.d) -c $$< -o $$@ + +endef # addTargetAsmObject + +define addTargetCObject # targetName, addlDeps +$$(if $$(filter 2,$$(V)),$$(info $$(call $(0),$(1),$(2)))) #debug print + +.PRECIOUS: $$(CACHE_ROOT)/%/$(1) +$$(CACHE_ROOT)/%/$(1) : $(1:.o=.c) $(2) | $$(CACHE_ROOT)/%/. + @echo CC $$@ + $$(CC) $$(CPPFLAGS) $$(CFLAGS) $$(DEPFLAGS) $$(CACHE_ROOT)/$$*/$(1:.o=.d) -c $$< -o $$@ + +endef # addTargetCObject + +define addTargetCxxObject # targetName, suffix, addlDeps +$$(if $$(filter 2,$$(V)),$$(info $$(call $(0),$(1),$(2),$(3)))) + +.PRECIOUS: $$(CACHE_ROOT)/%/$(1) +$$(CACHE_ROOT)/%/$(1) : $(1:.o=.$(2)) $(3) | $$(CACHE_ROOT)/%/. + @echo CXX $$@ + $$(CXX) $$(CPPFLAGS) $$(CXXFLAGS) $$(DEPFLAGS) $$(CACHE_ROOT)/$$*/$(1:.o=.d) -c $$< -o $$@ + +endef # addTargetCxxObject + +# Create targets for individual object files +C_SRCDIRS += . +vpath %.c $(C_SRCDIRS) +CXX_SRCDIRS += . +vpath %.cpp $(CXX_SRCDIRS) +vpath %.cc $(CXX_SRCDIRS) +ASM_SRCDIRS += . +vpath %.S $(ASM_SRCDIRS) + +# If C_SRCDIRS, CXX_SRCDIRS and ASM_SRCDIRS are not defined, use C_SRCS, CXX_SRCS and ASM_SRCS +C_SRCS ?= $(notdir $(foreach dir,$(C_SRCDIRS),$(wildcard $(dir)/*.c))) +CPP_SRCS ?= $(notdir $(foreach dir,$(CXX_SRCDIRS),$(wildcard $(dir)/*.cpp))) +CC_SRCS ?= $(notdir $(foreach dir,$(CXX_SRCDIRS),$(wildcard $(dir)/*.cc))) +CXX_SRCS ?= $(CPP_SRCS) $(CC_SRCS) +ASM_SRCS ?= $(notdir $(foreach dir,$(ASM_SRCDIRS),$(wildcard $(dir)/*.S))) + +# If C_SRCS, CXX_SRCS and ASM_SRCS are not defined, use C_OBJS, CXX_OBJS and ASM_OBJS +C_OBJS ?= $(patsubst %.c,%.o,$(C_SRCS)) +CPP_OBJS ?= $(patsubst %.cpp,%.o,$(CPP_SRCS)) +CC_OBJS ?= $(patsubst %.cc,%.o,$(CC_SRCS)) +CXX_OBJS ?= $(CPP_OBJS) $(CC_OBJS) # Note: not used +ASM_OBJS ?= $(patsubst %.S,%.o,$(ASM_SRCS)) + +$(foreach OBJ,$(C_OBJS),$(eval $(call addTargetCObject,$(OBJ)))) +$(foreach OBJ,$(CPP_OBJS),$(eval $(call addTargetCxxObject,$(OBJ),cpp))) +$(foreach OBJ,$(CC_OBJS),$(eval $(call addTargetCxxObject,$(OBJ),cc))) +$(foreach OBJ,$(ASM_OBJS),$(eval $(call addTargetAsmObject,$(OBJ)))) + +# -------------------------------------------------------------------------------------------- +# The following macros are used to create targets in the user Makefile. +# Binaries are built in the cache directory, and then symlinked to the current directory. +# The cache directory is automatically derived from CACHE_ROOT and list of flags and compilers. + +define static_library # targetName, targetDeps, addlDeps, addRecipe, hashComplement + +$$(if $$(filter 2,$$(V)),$$(info $$(call $(0),$(1),$(2),$(3),$(4),$(5)))) +MCM_ALL_BINS += $(1) + +$$(CACHE_ROOT)/%/$(1) : $$(addprefix $$(CACHE_ROOT)/%/,$(2)) $(3) + @echo AR $$@ + $$(AR) $$(ARFLAGS) $$@ $$^ + $(4) + +.PHONY: $(1) +$(1) : ARFLAGS = rcs +$(1) : $$(CACHE_ROOT)/$$(call HASH_FUNC,$(1),$(2) $$(CPPFLAGS) $$(CC) $$(CFLAGS) $$(CXX) $$(CXXFLAGS) $$(AR) $$(ARFLAGS) $(5))/$(1) + $$(LN) -sf $$< $$@ + +endef # static_library + + +define c_dynamic_library # targetName, targetDeps, addlDeps, addRecipe, hashComplement + +$$(if $$(filter 2,$$(V)),$$(info $$(call $(0),$(1),$(2),$(3),$(4),$(5)))) +MCM_ALL_BINS += $(1) + +$$(CACHE_ROOT)/%/$(1) : $$(addprefix $$(CACHE_ROOT)/%/,$(2)) $(3) + @echo LD $$@ + $$(CC) $$(CPPFLAGS) $$(CFLAGS) $$(LDFLAGS) -shared -o $$@ $$^ $$(LDLIBS) + $(4) + +.PHONY: $(1) +$(1) : CFLAGS += -fPIC +$(1) : $$(CACHE_ROOT)/$$(call HASH_FUNC,$(1),$(2) $$(CPPFLAGS) $$(CC) $$(CFLAGS) $$(LDFLAGS) $$(LDLIBS) $(5))/$(1) + $$(LN) -sf $$< $$@ + +endef # c_dynamic_library + + +define program_base # targetName, targetDeps, addlDeps, addRecipe, hashComplement, compiler, flags + +$$(if $$(filter 2,$$(V)),$$(info $$(call $(0),$(1),$(2),$(3),$(4),$(5),$(6),$(7)))) +MCM_ALL_BINS += $(1) + +$$(CACHE_ROOT)/%/$(1) : $$(addprefix $$(CACHE_ROOT)/%/,$(2)) $(3) + @echo LD $$@ + $$($(6)) $$(CPPFLAGS) $$($(7)) $$^ -o $$@ $$(LDFLAGS) $$(LDLIBS) + $(4) + +.PHONY: $(1) +$(1) : $$(CACHE_ROOT)/$$(call HASH_FUNC,$(1),$$($(6)) $$(CPPFLAGS) $$($(7)) $$(LDFLAGS) $$(LDLIBS) $(5))/$(1) + $$(LN) -sf $$< $$@$(EXT) + +endef # program_base +# Note: $(EXT) must be set to .exe for Windows + +define c_program # targetName, targetDeps, addlDeps, addRecipe +$$(eval $$(call program_base,$(1),$(2),$(3),$(4),$(1)$(2),CC,CFLAGS)) +endef # c_program + +define c_program_shared_o # targetName, targetDeps, addlDeps, addRecipe +$$(eval $$(call program_base,$(1),$(2),$(3),$(4),,CC,CFLAGS)) +endef # c_program_shared_o + +define cxx_program # targetName, targetDeps, addlDeps, addRecipe +$$(eval $$(call program_base,$(1),$(2),$(3),$(4),$(1)$(2),CXX,CXXFLAGS)) +endef # cxx_program + +define cxx_program_shared_o # targetName, targetDeps, addlDeps, addRecipe +$$(eval $$(call program_base,$(1),$(2),$(3),$(4),,CXX,CXXFLAGS)) +endef # cxx_program_shared_o + +# -------------------------------------------------------------------------------------------- + +# Cleaning: delete all objects and binaries created with this script +.PHONY: clean_cache +clean_cache: + $(RM) -rf $(CACHE_ROOT) + $(RM) $(MCM_ALL_BINS) + +# automatically attach to standard clean target +.PHONY: clean +clean: clean_cache diff --git a/vendor/lz4/build/meson/GetLz4LibraryVersion.py b/vendor/lz4/build/meson/GetLz4LibraryVersion.py new file mode 100644 index 0000000..831fc53 --- /dev/null +++ b/vendor/lz4/build/meson/GetLz4LibraryVersion.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +# ############################################################################# +# Copyright (c) 2018-present lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# +import re + + +def find_version_tuple(filepath): + version_file_data = None + with open(filepath) as fd: + version_file_data = fd.read() + + patterns = r"""\s*#\s*define\s+LZ4_VERSION_MAJOR\s+([0-9]+).*$ +\s*#\s*define\s+LZ4_VERSION_MINOR\s+([0-9]+).*$ +\s*#\s*define\s+LZ4_VERSION_RELEASE\s+([0-9]+).*$ +""" + regex = re.compile(patterns, re.MULTILINE) + version_match = regex.search(version_file_data) + if version_match: + return version_match.groups() + raise Exception("Unable to find version string.") + + +def main(): + import argparse + parser = argparse.ArgumentParser(description='Print lz4 version from lib/lz4.h') + parser.add_argument('file', help='path to lib/lz4.h') + args = parser.parse_args() + version_tuple = find_version_tuple(args.file) + print('.'.join(version_tuple)) + + +if __name__ == '__main__': + main() diff --git a/vendor/lz4/build/meson/README.md b/vendor/lz4/build/meson/README.md new file mode 100644 index 0000000..2caaaa7 --- /dev/null +++ b/vendor/lz4/build/meson/README.md @@ -0,0 +1,34 @@ +Meson build system for lz4 +========================== + +Meson is a build system designed to optimize programmer productivity. +It aims to do this by providing simple, out-of-the-box support for +modern software development tools and practices, such as unit tests, +coverage reports, Valgrind, CCache and the like. + +This Meson build system is provided with no guarantee. + +## How to build + +`cd` to this meson directory (`build/meson`) + +```sh +meson setup --buildtype=release -Ddefault_library=shared -Dprograms=true builddir +cd builddir +ninja # to build +ninja install # to install +``` + +You might want to install it in staging directory: + +```sh +DESTDIR=./staging ninja install +``` + +To configure build options, use: + +```sh +meson configure +``` + +See [man meson(1)](https://manpages.debian.org/testing/meson/meson.1.en.html). diff --git a/vendor/lz4/build/meson/meson.build b/vendor/lz4/build/meson/meson.build new file mode 100644 index 0000000..7e16968 --- /dev/null +++ b/vendor/lz4/build/meson/meson.build @@ -0,0 +1,30 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +# This is a dummy meson file. +# The intention is that it can be easily moved to the root of the project +# (together with meson_options.txt) and packaged for wrapdb. + +project( + 'lz4', + 'c', + license: 'BSD-2-Clause-Patent AND GPL-2.0-or-later', + default_options: [ + 'buildtype=release', + 'warning_level=3' + ], + version: run_command( + find_program('GetLz4LibraryVersion.py'), + '../../lib/lz4.h', + check: true + ).stdout().strip(), + meson_version: '>=0.58.0' +) + +subdir('meson') diff --git a/vendor/lz4/build/meson/meson/contrib/gen_manual/meson.build b/vendor/lz4/build/meson/meson/contrib/gen_manual/meson.build new file mode 100644 index 0000000..c4349aa --- /dev/null +++ b/vendor/lz4/build/meson/meson/contrib/gen_manual/meson.build @@ -0,0 +1,42 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# Copyright (c) 2022-present Tristan Partin +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +lz4_source_root = '../../../../..' + +add_languages('cpp', native: true) + +sources = files( + lz4_source_root / 'contrib/gen_manual/gen_manual.cpp' +) + +gen_manual = executable( + 'gen_manual', + sources, + native: true, + install: false +) + +manual_pages = ['lz4', 'lz4frame'] + +foreach mp : manual_pages + custom_target( + '@0@_manual.html'.format(mp), + build_by_default: true, + input: lz4_source_root / 'lib/@0@.h'.format(mp), + output: '@0@_manual.html'.format(mp), + command: [ + gen_manual, + meson.project_version(), + '@INPUT@', + '@OUTPUT@', + ], + install: false + ) +endforeach diff --git a/vendor/lz4/build/meson/meson/contrib/meson.build b/vendor/lz4/build/meson/meson/contrib/meson.build new file mode 100644 index 0000000..ef780fb --- /dev/null +++ b/vendor/lz4/build/meson/meson/contrib/meson.build @@ -0,0 +1,11 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# Copyright (c) 2022-present Tristan Partin +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +subdir('gen_manual') diff --git a/vendor/lz4/build/meson/meson/examples/meson.build b/vendor/lz4/build/meson/meson/examples/meson.build new file mode 100644 index 0000000..dd26334 --- /dev/null +++ b/vendor/lz4/build/meson/meson/examples/meson.build @@ -0,0 +1,32 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# Copyright (c) 2022-present Tristan Partin +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +lz4_source_root = '../../../..' + +examples = { + 'print_version': 'print_version.c', + 'blockStreaming_doubleBuffer': 'blockStreaming_doubleBuffer.c', + 'dictionaryRandomAccess': 'dictionaryRandomAccess.c', + 'blockStreaming_ringBuffer': 'blockStreaming_ringBuffer.c', + 'streamingHC_ringBuffer': 'streamingHC_ringBuffer.c', + 'blockStreaming_lineByLine': 'blockStreaming_lineByLine.c', + 'frameCompress': 'frameCompress.c', + 'bench_functions': 'bench_functions.c', + 'simple_buffer': 'simple_buffer.c', +} + +foreach e, src : examples + executable( + e, + lz4_source_root / 'examples' / src, + dependencies: [liblz4_internal_dep], + install: false + ) +endforeach diff --git a/vendor/lz4/build/meson/meson/lib/meson.build b/vendor/lz4/build/meson/meson/lib/meson.build new file mode 100644 index 0000000..4acf614 --- /dev/null +++ b/vendor/lz4/build/meson/meson/lib/meson.build @@ -0,0 +1,87 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# Copyright (c) 2022-present Tristan Partin +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +lz4_source_root = '../../../..' + +sources = files( + lz4_source_root / 'lib/lz4.c', + lz4_source_root / 'lib/lz4frame.c', + lz4_source_root / 'lib/lz4hc.c', + lz4_source_root / 'lib/xxhash.c' +) + +if get_option('unstable') + sources += files(lz4_source_root / 'lib/lz4file.c') +endif + +c_args = [] + +if host_machine.system() == 'windows' and get_option('default_library') != 'static' + c_args += '-DLZ4_DLL_EXPORT=1' +endif + +liblz4 = library( + 'lz4', + sources, + c_args: c_args, + install: true, + version: meson.project_version(), + gnu_symbol_visibility: 'hidden' +) + +liblz4_dep = declare_dependency( + link_with: liblz4, + compile_args: compile_args, + include_directories: include_directories(lz4_source_root / 'lib') +) + +meson.override_dependency('liblz4', liblz4_dep) + +if get_option('tests') or get_option('programs') or get_option('examples') or get_option('ossfuzz') + if get_option('default_library') == 'shared' + liblz4_internal = static_library( + 'lz4-internal', + objects: liblz4.extract_all_objects(recursive: true), + gnu_symbol_visibility: 'hidden' + ) + elif get_option('default_library') == 'static' + liblz4_internal = liblz4 + elif get_option('default_library') == 'both' + liblz4_internal = liblz4.get_static_lib() + endif + + liblz4_internal_dep = declare_dependency( + link_with: liblz4_internal, + compile_args: compile_args, + include_directories: include_directories(lz4_source_root / 'lib') + ) +endif + +pkgconfig.generate( + liblz4, + name: 'lz4', + filebase: 'liblz4', + description: 'extremely fast lossless compression algorithm library', + version: meson.project_version(), + url: 'http://www.lz4.org/' +) + +install_headers( + lz4_source_root / 'lib/lz4.h', + lz4_source_root / 'lib/lz4hc.h', + lz4_source_root / 'lib/lz4frame.h' +) + +if get_option('default_library') != 'shared' + install_headers(lz4_source_root / 'lib/lz4frame_static.h') + if get_option('unstable') + install_headers(lz4_source_root / 'lib/lz4file.h') + endif +endif diff --git a/vendor/lz4/build/meson/meson/meson.build b/vendor/lz4/build/meson/meson/meson.build new file mode 100644 index 0000000..90337bb --- /dev/null +++ b/vendor/lz4/build/meson/meson/meson.build @@ -0,0 +1,135 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# Copyright (c) 2022-present Tristan Partin +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +cc = meson.get_compiler('c') + +fs = import('fs') +pkgconfig = import('pkgconfig') + +lz4_source_root = '../../..' + +add_project_arguments('-DXXH_NAMESPACE=LZ4_', language: 'c') + +if get_option('debug') + add_project_arguments(cc.get_supported_arguments( + '-Wcast-qual', + '-Wcast-align', + '-Wshadow', + '-Wswitch-enum', + '-Wdeclaration-after-statement', + '-Wstrict-prototypes', + '-Wundef', + '-Wpointer-arith', + '-Wstrict-aliasing=1', + '-DLZ4_DEBUG=@0@'.format(get_option('debug-level')) + ), + language: 'c' + ) +endif + +compile_args = [] + +if not get_option('align-test') + add_project_arguments('-DLZ4_ALIGN_TEST=0', language: 'c') +endif + +if get_option('disable-memory-allocation') + if get_option('default_library') != 'static' + error('Memory allocation can only be disabled in static builds') + endif + + add_project_arguments('-DLZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION') + compile_args += '-DLZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION' +endif + +add_project_arguments( + '-DLZ4_DISTANCE_MAX=@0@'.format(get_option('distance-max')), + language: 'c' +) +compile_args += '-DLZ4_DISTANCE_MAX=@0@'.format(get_option('distance-max')) + +if not get_option('fast-dec-loop').auto() + add_project_arguments( + '-DLZ4_FAST_DEC_LOOP=@0@'.format( + get_option('fast-dec-loop').enabled() ? 1 : 0 + ), + language: 'c' + ) +endif + +if get_option('force-sw-bitcount') + add_project_arguments('-DLZ4_FORCE_SW_BITCOUNT', language: 'c') +endif + +if get_option('freestanding') + add_project_arguments('-DLZ4_FREESTANDING=1', language: 'c') + compile_args += '-DLZ4_FREESTANDING=1' +endif + +if get_option('memory-usage') > 0 + add_project_arguments( + '-DLZ4_MEMORY_USAGE=@0@'.format(get_option('memory-usage')), + language: 'c' + ) + compile_args += '-DLZ4_MEMORY_USAGE=@0@'.format(get_option('memory-usage')) +endif + +if get_option('endianness-independent-output') + if get_option('default_library') != 'static' + error('Endianness-independent output can only be enabled in static builds') + endif + + add_project_arguments('-DLZ4_STATIC_LINKING_ONLY_ENDIANNESS_INDEPENDENT_OUTPUT') + compile_args += '-DLZ4_STATIC_LINKING_ONLY_ENDIANNESS_INDEPENDENT_OUTPUT' +endif + +if get_option('unstable') + add_project_arguments('-DLZ4_STATIC_LINKING_ONLY', language: 'c') + compile_args += '-DLZ4_STATIC_LINKING_ONLY' + if get_option('default_library') != 'static' + add_project_arguments('-DLZ4_PUBLISH_STATIC_FUNCTIONS', language: 'c') + compile_args += '-DLZ4_PUBLISH_STATIC_FUNCTIONS' + + add_project_arguments('-DLZ4F_PUBLISH_STATIC_FUNCTIONS', language: 'c') + compile_args += '-DLZ4F_PUBLISH_STATIC_FUNCTIONS' + endif +endif + +if get_option('user-memory-functions') + add_project_arguments('-DLZ4_USER_MEMORY_FUNCTIONS', language: 'c') +endif + +run_env = environment() + +subdir('lib') + +if get_option('programs') + subdir('programs') +else + lz4 = disabler() + lz4cat = disabler() + unlz4 = disabler() +endif + +if get_option('tests') + subdir('tests') +endif + +if get_option('contrib') + subdir('contrib') +endif + +if get_option('examples') + subdir('examples') +endif + +if get_option('ossfuzz') + subdir('ossfuzz') +endif diff --git a/vendor/lz4/build/meson/meson/ossfuzz/meson.build b/vendor/lz4/build/meson/meson/ossfuzz/meson.build new file mode 100644 index 0000000..39ab21c --- /dev/null +++ b/vendor/lz4/build/meson/meson/ossfuzz/meson.build @@ -0,0 +1,37 @@ +lz4_source_root = '../../../..' + +fuzzers = [ + 'compress_frame_fuzzer', + 'compress_fuzzer', + 'compress_hc_fuzzer', + 'decompress_frame_fuzzer', + 'decompress_fuzzer', + 'round_trip_frame_uncompressed_fuzzer', + 'round_trip_fuzzer', + 'round_trip_hc_fuzzer', + 'round_trip_stream_fuzzer' +] + +c_args = cc.get_supported_arguments( + '-Wno-unused-function', + '-Wno-sign-compare', + '-Wno-declaration-after-statement' +) + +foreach f : fuzzers + lib = static_library( + f, + lz4_source_root / 'ossfuzz/@0@.c'.format(f), + lz4_source_root / 'ossfuzz/lz4_helpers.c', + lz4_source_root / 'ossfuzz/fuzz_data_producer.c', + c_args: c_args, + dependencies: [liblz4_internal_dep] + ) + + executable( + f, + lz4_source_root / 'ossfuzz/standaloneengine.c', + link_with: lib, + dependencies: [liblz4_internal_dep] + ) +endforeach diff --git a/vendor/lz4/build/meson/meson/programs/meson.build b/vendor/lz4/build/meson/meson/programs/meson.build new file mode 100644 index 0000000..44378c2 --- /dev/null +++ b/vendor/lz4/build/meson/meson/programs/meson.build @@ -0,0 +1,91 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# Copyright (c) 2022-present Tristan Partin +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +lz4_source_root = '../../../..' + +# note: +# it would be preferable to use some kind of glob or wildcard expansion here... +sources = files( + lz4_source_root / 'programs/bench.c', + lz4_source_root / 'programs/lorem.c', + lz4_source_root / 'programs/lz4cli.c', + lz4_source_root / 'programs/lz4io.c', + lz4_source_root / 'programs/util.c', + lz4_source_root / 'programs/threadpool.c', + lz4_source_root / 'programs/timefn.c', +) + +# Initialize an empty list for extra dependencies +extra_deps = [] + +if get_option('enable_multithread') + pthread_dep = dependency('threads', required : true) + extra_deps += [pthread_dep] + multithread_args = ['-DLZ4IO_MULTITHREAD'] +else + multithread_args = [] +endif + +lz4 = executable( + 'lz4', + sources, + include_directories: include_directories(lz4_source_root / 'programs'), + dependencies: [liblz4_internal_dep] + extra_deps, + c_args: multithread_args, + export_dynamic: get_option('debug') and host_machine.system() == 'windows', + install: true +) + +lz4cat = custom_target( + 'lz4cat', + input: lz4, + output: 'lz4cat', + command: [ + 'ln', + '-s', + '-f', + fs.name(lz4.full_path()), + '@OUTPUT@' + ] +) + +unlz4 = custom_target( + 'unlz4', + input: lz4, + output: 'unlz4', + command: [ + 'ln', + '-s', + '-f', + fs.name(lz4.full_path()), + '@OUTPUT@' + ] +) + +meson.override_find_program('lz4', lz4) + +run_env.prepend('PATH', meson.current_build_dir()) + +install_man(lz4_source_root / 'programs/lz4.1') + +if meson.version().version_compare('>=0.61.0') + foreach alias : ['lz4c', 'lz4cat', 'unlz4'] + install_symlink( + alias, + install_dir: get_option('bindir'), + pointing_to: 'lz4' + ) + install_symlink( + '@0@.1'.format(alias), + install_dir: get_option('mandir') / 'man1', + pointing_to: 'lz4.1' + ) + endforeach +endif diff --git a/vendor/lz4/build/meson/meson/tests/meson.build b/vendor/lz4/build/meson/meson/tests/meson.build new file mode 100644 index 0000000..cf68812 --- /dev/null +++ b/vendor/lz4/build/meson/meson/tests/meson.build @@ -0,0 +1,162 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# Copyright (c) 2022-present Tristan Partin +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +lz4_source_root = '../../../..' + +fuzzer_time = 90 +test_exes = { + 'abiTest': { + 'sources': files(lz4_source_root / 'tests/abiTest.c'), + 'test': false, + }, + 'checkFrame': { + 'sources': files(lz4_source_root / 'tests/checkFrame.c'), + 'include_directories': include_directories(lz4_source_root / 'programs'), + }, + 'checkTag': { + 'sources': files(lz4_source_root / 'tests/checkTag.c'), + 'test': false, + }, + 'datagen': { + 'sources': files( + lz4_source_root / 'programs/lorem.c', + lz4_source_root / 'tests/datagencli.c', + lz4_source_root / 'tests/datagen.c', + lz4_source_root / 'tests/loremOut.c', + ), + 'include_directories': include_directories(lz4_source_root / 'programs'), + }, + 'decompress-partial-usingDict.c': { + 'sources': files(lz4_source_root / 'tests/decompress-partial-usingDict.c'), + }, + 'decompress-partial.c': { + 'sources': files(lz4_source_root / 'tests/decompress-partial.c'), + }, + 'frametest': { + 'sources': files(lz4_source_root / 'tests/frametest.c'), + 'include_directories': include_directories(lz4_source_root / 'programs'), + 'args': ['-v', '-T@0@s'.format(fuzzer_time)], + 'test': false, + }, + 'freestanding': { + 'sources': files(lz4_source_root / 'tests/freestanding.c'), + 'c_args': ['-ffreestanding', '-fno-stack-protector', '-Wno-unused-parameter', '-Wno-declaration-after-statement', '-DLZ4_DEBUG=0'], + 'link_args': ['-nostdlib'], + 'build': cc.get_id() in ['gcc', 'clang'] and + host_machine.system() == 'linux' and host_machine.cpu_family() == 'x86_64', + 'override_options': ['optimization=1'], + }, + 'fullbench': { + 'sources': files(lz4_source_root / 'tests/fullbench.c'), + 'include_directories': include_directories(lz4_source_root / 'programs'), + 'args': ['--no-prompt', '-i1', files(lz4_source_root / 'tests/COPYING')], + 'test': false, + }, + 'fuzzer': { + 'sources': files(lz4_source_root / 'tests/fuzzer.c'), + 'include_directories': include_directories(lz4_source_root / 'programs'), + 'args': ['-T@0@s'.format(fuzzer_time)], + 'test': false, + }, + 'roundTripTest': { + 'sources': files(lz4_source_root / 'tests/roundTripTest.c'), + 'test': false, + }, +} + +targets = {} + +foreach e, attrs : test_exes + if not attrs.get('build', true) + targets += {e: disabler()} + continue + endif + + t = executable( + e, + attrs.get('sources'), + c_args: attrs.get('c_args', []), + link_args: attrs.get('link_args', []), + objects: attrs.get('objects', []), + dependencies: [liblz4_internal_dep], + include_directories: attrs.get('include_directories', []), + install: false, + override_options: attrs.get('override_options', []) + ) + + targets += {e: t} + + if not attrs.get('test', true) + continue + endif + + test( + e, + t, + args: attrs.get('params', []), + timeout: 120 + ) +endforeach + +fs = import('fs') + +run_env.prepend('PATH', meson.current_build_dir()) + +test_scripts = { + 'lz4-basic': { + 'depends': [lz4, lz4cat, unlz4, targets['datagen']], + }, + 'lz4-dict': { + 'depends': [lz4, targets['datagen']], + }, + 'lz4-contentSize': { + 'depends': [lz4, targets['datagen']], + }, + 'lz4-fast-hugefile': { + 'depends': [lz4, targets['datagen']], + }, + 'lz4-frame-concatenation': { + 'depends': [lz4, targets['datagen']], + }, + 'lz4-multiple': { + 'depends': [lz4, targets['datagen']], + }, + 'lz4-multiple-legacy': { + 'depends': [lz4, targets['datagen']], + }, + 'lz4-opt-parser': { + 'depends': [lz4, targets['datagen']], + }, + 'lz4-skippable': { + 'depends': [lz4], + }, + 'lz4-sparse': { + 'depends': [lz4, targets['datagen']], + }, + 'lz4-testmode': { + 'depends': [lz4, targets['datagen']], + }, + 'lz4hc-hugefile': { + 'depends': [lz4, targets['datagen']], + }, +} + +foreach s, attrs : test_scripts + script = find_program(lz4_source_root / 'tests/test-@0@.sh'.format(s)) + + test( + '@0@'.format(s), + script, + depends: attrs.get('depends', []), + workdir: fs.parent(script.full_path()), + env: run_env, + timeout: 360 + ) +endforeach diff --git a/vendor/lz4/build/meson/meson_options.txt b/vendor/lz4/build/meson/meson_options.txt new file mode 100644 index 0000000..d9c30d6 --- /dev/null +++ b/vendor/lz4/build/meson/meson_options.txt @@ -0,0 +1,44 @@ +# ############################################################################# +# Copyright (c) 2018-present lzutao +# Copyright (c) 2022-present Tristan Partin +# All rights reserved. +# +# This source code is licensed under both the BSD-style license (found in the +# LICENSE file in the root directory of this source tree) and the GPLv2 (found +# in the COPYING file in the root directory of this source tree). +# ############################################################################# + +option('enable_multithread', type: 'boolean', value: true, + description: 'Enable multi-threading support') +option('align-test', type: 'boolean', value: true, + description: 'See LZ4_ALIGN_TEST') +option('contrib', type: 'boolean', value: false, + description: 'Enable contrib') +option('debug-level', type: 'integer', min: 0, max: 7, value: 1, + description: 'Enable run-time debug. See lib/lz4hc.c') +option('disable-memory-allocation', type: 'boolean', value: false, + description: 'See LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION. Static builds only') +option('distance-max', type: 'integer', min: 0, max: 65535, value: 65535, + description: 'See LZ4_DISTANCE_MAX') +option('endianness-independent-output', type: 'boolean', value: false, + description: 'See LZ4_STATIC_LINKING_ONLY_ENDIANNESS_INDEPENDENT_OUTPUT. Static builds only') +option('examples', type: 'boolean', value: false, + description: 'Enable examples') +option('fast-dec-loop', type: 'feature', value: 'auto', + description: 'See LZ4_FAST_DEC_LOOP') +option('force-sw-bitcount', type: 'boolean', value: false, + description: 'See LZ4_FORCE_SW_BITCOUNT') +option('freestanding', type: 'boolean', value: false, + description: 'See LZ4_FREESTANDING') +option('memory-usage', type: 'integer', min: 0, max: 20, value: 0, + description: 'See LZ4_MEMORY_USAGE. 0 means use the LZ4 default') +option('ossfuzz', type: 'boolean', value: true, + description: 'Enable ossfuzz') +option('programs', type: 'boolean', value: false, + description: 'Enable programs') +option('tests', type: 'boolean', value: false, + description: 'Enable tests') +option('unstable', type: 'boolean', value: false, + description: 'Expose unstable interfaces') +option('user-memory-functions', type: 'boolean', value: false, + description: 'See LZ4_USER_MEMORY_FUNCTIONS') diff --git a/vendor/lz4/build/visual/README.md b/vendor/lz4/build/visual/README.md new file mode 100644 index 0000000..e96c42a --- /dev/null +++ b/vendor/lz4/build/visual/README.md @@ -0,0 +1,5 @@ +These scripts will generate Visual Studio Solutions for a selected set of supported versions of MS Visual. + +For these scripts to work, both `cmake` and the relevant Visual Studio version must be locally installed on the system where the script is run. + +If `cmake` is installed into a non-standard directory, or user wants to test a specific version of `cmake`, the target `cmake` directory can be provided via the environment variable `CMAKE_PATH`. diff --git a/vendor/lz4/build/visual/generate_solution.cmd b/vendor/lz4/build/visual/generate_solution.cmd new file mode 100644 index 0000000..644d812 --- /dev/null +++ b/vendor/lz4/build/visual/generate_solution.cmd @@ -0,0 +1,55 @@ +:: Requires 1 parameter == GENERATOR +@echo off +setlocal + +:: Set path +set "BUILD_BASE_DIR=%~dp0" :: Use the directory where the script is located +set "CMAKELIST_DIR=..\..\cmake" + +if "%~1"=="" ( + echo No generator specified as first parameter + exit /b 1 +) +set "GENERATOR=%~1" + +:: Check if a user-defined CMAKE_PATH is set and prioritize it +if defined CMAKE_PATH ( + set "CMAKE_EXECUTABLE=%CMAKE_PATH%\cmake.exe" + echo Using user-defined cmake at %CMAKE_PATH% +) else ( + :: Attempt to find cmake in the system PATH + where cmake >nul 2>&1 + if %ERRORLEVEL% neq 0 ( + :: Use the default standard cmake installation directory if not found in PATH + set "CMAKE_PATH=C:\Program Files\CMake\bin" + echo CMake not in system PATH => using default CMAKE_PATH=%CMAKE_PATH% + set "CMAKE_EXECUTABLE=%CMAKE_PATH%\cmake.exe" + ) else ( + set "CMAKE_EXECUTABLE=cmake" + echo CMake found in system PATH. + ) +) + +:: Set the build directory to a subdirectory named after the generator +set "BUILD_DIR=%BUILD_BASE_DIR%\%GENERATOR%" + +:: Create the build directory if it doesn't exist +if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%" + +:: Run CMake to configure the project and generate the solution +pushd "%BUILD_DIR%" +"%CMAKE_EXECUTABLE%" -G "%GENERATOR%" "%CMAKELIST_DIR%" +if %ERRORLEVEL% neq 0 goto :error + +:: If successful, end script +echo Build configuration successful for %GENERATOR%. +goto :end + +:error +echo Failed to configure build for %GENERATOR%. +exit /b 1 + +:end +popd +endlocal +@echo on diff --git a/vendor/lz4/build/visual/generate_vs2015.cmd b/vendor/lz4/build/visual/generate_vs2015.cmd new file mode 100644 index 0000000..9b64a4f --- /dev/null +++ b/vendor/lz4/build/visual/generate_vs2015.cmd @@ -0,0 +1,3 @@ +@echo off +:: Call the central script with the specific generator for VS2015 +call generate_solution.cmd "Visual Studio 14 2015" diff --git a/vendor/lz4/build/visual/generate_vs2017.cmd b/vendor/lz4/build/visual/generate_vs2017.cmd new file mode 100644 index 0000000..d5ab8fc --- /dev/null +++ b/vendor/lz4/build/visual/generate_vs2017.cmd @@ -0,0 +1,3 @@ +@echo off +:: Call the central script with the specific generator for VS2017 +call generate_solution.cmd "Visual Studio 15 2017" diff --git a/vendor/lz4/build/visual/generate_vs2019.cmd b/vendor/lz4/build/visual/generate_vs2019.cmd new file mode 100644 index 0000000..653fc6e --- /dev/null +++ b/vendor/lz4/build/visual/generate_vs2019.cmd @@ -0,0 +1,3 @@ +@echo off +:: Call the central script with the specific generator for VS2019 +call generate_solution.cmd "Visual Studio 16 2019" diff --git a/vendor/lz4/build/visual/generate_vs2022.cmd b/vendor/lz4/build/visual/generate_vs2022.cmd new file mode 100644 index 0000000..a48f744 --- /dev/null +++ b/vendor/lz4/build/visual/generate_vs2022.cmd @@ -0,0 +1,3 @@ +@echo off +:: Call the central script with the specific generator for VS2022 +call generate_solution.cmd "Visual Studio 17 2022"