extlz4 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/Rakefile +22 -0
  4. data/contrib/lz4/LICENSE +2 -1
  5. data/contrib/lz4/Makefile.inc +39 -15
  6. data/contrib/lz4/NEWS +21 -0
  7. data/contrib/lz4/README.md +1 -1
  8. data/contrib/lz4/build/VS2010/liblz4-dll/liblz4-dll.rc +1 -1
  9. data/contrib/lz4/build/VS2010/lz4/lz4.rc +1 -1
  10. data/contrib/lz4/build/VS2017/liblz4-dll/liblz4-dll.rc +1 -1
  11. data/contrib/lz4/build/VS2017/lz4/lz4.rc +1 -1
  12. data/contrib/lz4/build/VS2017/lz4/lz4.vcxproj +12 -1
  13. data/contrib/lz4/build/VS2022/datagen/datagen.vcxproj +173 -0
  14. data/contrib/lz4/build/VS2022/frametest/frametest.vcxproj +180 -0
  15. data/contrib/lz4/build/VS2022/fullbench/fullbench.vcxproj +180 -0
  16. data/contrib/lz4/build/VS2022/fullbench-dll/fullbench-dll.vcxproj +184 -0
  17. data/contrib/lz4/build/VS2022/fuzzer/fuzzer.vcxproj +177 -0
  18. data/contrib/lz4/build/VS2022/liblz4/liblz4.vcxproj +179 -0
  19. data/contrib/lz4/build/VS2022/liblz4-dll/liblz4-dll.rc +51 -0
  20. data/contrib/lz4/build/VS2022/liblz4-dll/liblz4-dll.vcxproj +183 -0
  21. data/contrib/lz4/build/VS2022/lz4.sln +103 -0
  22. data/contrib/lz4/build/cmake/CMakeLists.txt +49 -11
  23. data/contrib/lz4/build/cmake/lz4Config.cmake.in +2 -0
  24. data/contrib/lz4/lib/LICENSE +1 -1
  25. data/contrib/lz4/lib/README.md +45 -13
  26. data/contrib/lz4/lib/liblz4-dll.rc.in +1 -1
  27. data/contrib/lz4/lib/liblz4.pc.in +3 -3
  28. data/contrib/lz4/lib/lz4.c +422 -195
  29. data/contrib/lz4/lib/lz4.h +114 -46
  30. data/contrib/lz4/lib/lz4file.c +311 -0
  31. data/contrib/lz4/lib/lz4file.h +93 -0
  32. data/contrib/lz4/lib/lz4frame.c +421 -242
  33. data/contrib/lz4/lib/lz4frame.h +122 -53
  34. data/contrib/lz4/lib/lz4frame_static.h +1 -1
  35. data/contrib/lz4/lib/lz4hc.c +127 -111
  36. data/contrib/lz4/lib/lz4hc.h +14 -14
  37. data/contrib/lz4/ossfuzz/Makefile +1 -0
  38. data/contrib/lz4/ossfuzz/decompress_fuzzer.c +18 -2
  39. data/contrib/lz4/ossfuzz/fuzz_helpers.h +3 -2
  40. data/contrib/lz4/ossfuzz/round_trip_frame_uncompressed_fuzzer.c +134 -0
  41. data/contrib/lz4/ossfuzz/round_trip_fuzzer.c +66 -6
  42. data/ext/blockapi.c +8 -8
  43. data/ext/extlz4.h +12 -0
  44. data/ext/frameapi.c +3 -3
  45. data/ext/hashargs.c +7 -1
  46. metadata +16 -5
  47. data/contrib/lz4/tmp +0 -0
  48. data/contrib/lz4/tmpsparse +0 -0
@@ -0,0 +1,179 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup Label="ProjectConfigurations">
4
+ <ProjectConfiguration Include="Debug|Win32">
5
+ <Configuration>Debug</Configuration>
6
+ <Platform>Win32</Platform>
7
+ </ProjectConfiguration>
8
+ <ProjectConfiguration Include="Debug|x64">
9
+ <Configuration>Debug</Configuration>
10
+ <Platform>x64</Platform>
11
+ </ProjectConfiguration>
12
+ <ProjectConfiguration Include="Release|Win32">
13
+ <Configuration>Release</Configuration>
14
+ <Platform>Win32</Platform>
15
+ </ProjectConfiguration>
16
+ <ProjectConfiguration Include="Release|x64">
17
+ <Configuration>Release</Configuration>
18
+ <Platform>x64</Platform>
19
+ </ProjectConfiguration>
20
+ </ItemGroup>
21
+ <PropertyGroup Label="Globals">
22
+ <ProjectGuid>{9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}</ProjectGuid>
23
+ <Keyword>Win32Proj</Keyword>
24
+ <RootNamespace>liblz4</RootNamespace>
25
+ <OutDir>$(SolutionDir)bin\$(Platform)_$(Configuration)\</OutDir>
26
+ <IntDir>$(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\</IntDir>
27
+ </PropertyGroup>
28
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
29
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
30
+ <ConfigurationType>StaticLibrary</ConfigurationType>
31
+ <UseDebugLibraries>true</UseDebugLibraries>
32
+ <CharacterSet>Unicode</CharacterSet>
33
+ <PlatformToolset>v143</PlatformToolset>
34
+ </PropertyGroup>
35
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
36
+ <ConfigurationType>StaticLibrary</ConfigurationType>
37
+ <UseDebugLibraries>true</UseDebugLibraries>
38
+ <CharacterSet>Unicode</CharacterSet>
39
+ <PlatformToolset>v143</PlatformToolset>
40
+ </PropertyGroup>
41
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
42
+ <ConfigurationType>StaticLibrary</ConfigurationType>
43
+ <UseDebugLibraries>false</UseDebugLibraries>
44
+ <CharacterSet>Unicode</CharacterSet>
45
+ <WholeProgramOptimization Condition="'$(EnableWholeProgramOptimization)'=='true'">true</WholeProgramOptimization>
46
+ <PlatformToolset>v143</PlatformToolset>
47
+ </PropertyGroup>
48
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
49
+ <ConfigurationType>StaticLibrary</ConfigurationType>
50
+ <UseDebugLibraries>false</UseDebugLibraries>
51
+ <CharacterSet>Unicode</CharacterSet>
52
+ <WholeProgramOptimization Condition="'$(EnableWholeProgramOptimization)'=='true'">true</WholeProgramOptimization>
53
+ <PlatformToolset>v143</PlatformToolset>
54
+ </PropertyGroup>
55
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
56
+ <ImportGroup Label="ExtensionSettings">
57
+ </ImportGroup>
58
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
59
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
60
+ </ImportGroup>
61
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
62
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
63
+ </ImportGroup>
64
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
65
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
66
+ </ImportGroup>
67
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
68
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
69
+ </ImportGroup>
70
+ <PropertyGroup Label="UserMacros" />
71
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
72
+ <LinkIncremental>true</LinkIncremental>
73
+ <TargetName>liblz4_static</TargetName>
74
+ <IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
75
+ </PropertyGroup>
76
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
77
+ <LinkIncremental>true</LinkIncremental>
78
+ <TargetName>liblz4_static</TargetName>
79
+ <IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
80
+ <RunCodeAnalysis>true</RunCodeAnalysis>
81
+ </PropertyGroup>
82
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
83
+ <LinkIncremental>false</LinkIncremental>
84
+ <TargetName>liblz4_static</TargetName>
85
+ <IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
86
+ </PropertyGroup>
87
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
88
+ <LinkIncremental>false</LinkIncremental>
89
+ <TargetName>liblz4_static</TargetName>
90
+ <IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
91
+ <RunCodeAnalysis>true</RunCodeAnalysis>
92
+ </PropertyGroup>
93
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
94
+ <ClCompile>
95
+ <PrecompiledHeader>
96
+ </PrecompiledHeader>
97
+ <WarningLevel>Level4</WarningLevel>
98
+ <Optimization>Disabled</Optimization>
99
+ <PreprocessorDefinitions>WIN32;_DEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
100
+ <TreatWarningAsError>true</TreatWarningAsError>
101
+ <EnablePREfast>false</EnablePREfast>
102
+ <RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreadedDebug</RuntimeLibrary>
103
+ </ClCompile>
104
+ <Link>
105
+ <GenerateDebugInformation>true</GenerateDebugInformation>
106
+ </Link>
107
+ </ItemDefinitionGroup>
108
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
109
+ <ClCompile>
110
+ <PrecompiledHeader>
111
+ </PrecompiledHeader>
112
+ <WarningLevel>Level4</WarningLevel>
113
+ <Optimization>Disabled</Optimization>
114
+ <PreprocessorDefinitions>WIN32;_DEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
115
+ <TreatWarningAsError>true</TreatWarningAsError>
116
+ <EnablePREfast>true</EnablePREfast>
117
+ <AdditionalOptions>/analyze:stacksize295252 %(AdditionalOptions)</AdditionalOptions>
118
+ <RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreadedDebug</RuntimeLibrary>
119
+ </ClCompile>
120
+ <Link>
121
+ <GenerateDebugInformation>true</GenerateDebugInformation>
122
+ </Link>
123
+ </ItemDefinitionGroup>
124
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
125
+ <ClCompile>
126
+ <WarningLevel>Level4</WarningLevel>
127
+ <PrecompiledHeader>
128
+ </PrecompiledHeader>
129
+ <Optimization>MaxSpeed</Optimization>
130
+ <FunctionLevelLinking>true</FunctionLevelLinking>
131
+ <IntrinsicFunctions>true</IntrinsicFunctions>
132
+ <PreprocessorDefinitions>WIN32;NDEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
133
+ <TreatWarningAsError>false</TreatWarningAsError>
134
+ <EnablePREfast>false</EnablePREfast>
135
+ <RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreaded</RuntimeLibrary>
136
+ </ClCompile>
137
+ <Link>
138
+ <GenerateDebugInformation>true</GenerateDebugInformation>
139
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
140
+ <OptimizeReferences>true</OptimizeReferences>
141
+ </Link>
142
+ </ItemDefinitionGroup>
143
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
144
+ <ClCompile>
145
+ <WarningLevel>Level4</WarningLevel>
146
+ <PrecompiledHeader>
147
+ </PrecompiledHeader>
148
+ <Optimization>MaxSpeed</Optimization>
149
+ <FunctionLevelLinking>true</FunctionLevelLinking>
150
+ <IntrinsicFunctions>true</IntrinsicFunctions>
151
+ <PreprocessorDefinitions>WIN32;NDEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
152
+ <TreatWarningAsError>false</TreatWarningAsError>
153
+ <EnablePREfast>true</EnablePREfast>
154
+ <AdditionalOptions>/analyze:stacksize295252 %(AdditionalOptions)</AdditionalOptions>
155
+ <RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreaded</RuntimeLibrary>
156
+ </ClCompile>
157
+ <Link>
158
+ <GenerateDebugInformation>true</GenerateDebugInformation>
159
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
160
+ <OptimizeReferences>true</OptimizeReferences>
161
+ </Link>
162
+ </ItemDefinitionGroup>
163
+ <ItemGroup>
164
+ <ClInclude Include="..\..\..\lib\lz4.h" />
165
+ <ClInclude Include="..\..\..\lib\lz4frame.h" />
166
+ <ClInclude Include="..\..\..\lib\lz4frame_static.h" />
167
+ <ClInclude Include="..\..\..\lib\lz4hc.h" />
168
+ <ClInclude Include="..\..\..\lib\xxhash.h" />
169
+ </ItemGroup>
170
+ <ItemGroup>
171
+ <ClCompile Include="..\..\..\lib\lz4.c" />
172
+ <ClCompile Include="..\..\..\lib\lz4frame.c" />
173
+ <ClCompile Include="..\..\..\lib\lz4hc.c" />
174
+ <ClCompile Include="..\..\..\lib\xxhash.c" />
175
+ </ItemGroup>
176
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
177
+ <ImportGroup Label="ExtensionTargets">
178
+ </ImportGroup>
179
+ </Project>
@@ -0,0 +1,51 @@
1
+ // Microsoft Visual C++ generated resource script.
2
+ //
3
+
4
+ #include "lz4.h" /* LZ4_VERSION_STRING */
5
+ #define APSTUDIO_READONLY_SYMBOLS
6
+ #include "verrsrc.h"
7
+ #undef APSTUDIO_READONLY_SYMBOLS
8
+
9
+
10
+ #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
11
+ LANGUAGE 9, 1
12
+
13
+ /////////////////////////////////////////////////////////////////////////////
14
+ //
15
+ // Version
16
+ //
17
+
18
+ VS_VERSION_INFO VERSIONINFO
19
+ FILEVERSION LZ4_VERSION_MAJOR,LZ4_VERSION_MINOR,LZ4_VERSION_RELEASE,0
20
+ PRODUCTVERSION LZ4_VERSION_MAJOR,LZ4_VERSION_MINOR,LZ4_VERSION_RELEASE,0
21
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
22
+ #ifdef _DEBUG
23
+ FILEFLAGS VS_FF_DEBUG
24
+ #else
25
+ FILEFLAGS 0x0L
26
+ #endif
27
+ FILEOS VOS_NT_WINDOWS32
28
+ FILETYPE VFT_DLL
29
+ FILESUBTYPE VFT2_UNKNOWN
30
+ BEGIN
31
+ BLOCK "StringFileInfo"
32
+ BEGIN
33
+ BLOCK "040904B0"
34
+ BEGIN
35
+ VALUE "CompanyName", "Yann Collet"
36
+ VALUE "FileDescription", "Extremely fast compression"
37
+ VALUE "FileVersion", LZ4_VERSION_STRING
38
+ VALUE "InternalName", "lz4.dll"
39
+ VALUE "LegalCopyright", "Copyright (C) 2013-2020, Yann Collet"
40
+ VALUE "OriginalFilename", "lz4.dll"
41
+ VALUE "ProductName", "LZ4"
42
+ VALUE "ProductVersion", LZ4_VERSION_STRING
43
+ END
44
+ END
45
+ BLOCK "VarFileInfo"
46
+ BEGIN
47
+ VALUE "Translation", 0x0409, 1200
48
+ END
49
+ END
50
+
51
+ #endif
@@ -0,0 +1,183 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup Label="ProjectConfigurations">
4
+ <ProjectConfiguration Include="Debug|Win32">
5
+ <Configuration>Debug</Configuration>
6
+ <Platform>Win32</Platform>
7
+ </ProjectConfiguration>
8
+ <ProjectConfiguration Include="Debug|x64">
9
+ <Configuration>Debug</Configuration>
10
+ <Platform>x64</Platform>
11
+ </ProjectConfiguration>
12
+ <ProjectConfiguration Include="Release|Win32">
13
+ <Configuration>Release</Configuration>
14
+ <Platform>Win32</Platform>
15
+ </ProjectConfiguration>
16
+ <ProjectConfiguration Include="Release|x64">
17
+ <Configuration>Release</Configuration>
18
+ <Platform>x64</Platform>
19
+ </ProjectConfiguration>
20
+ </ItemGroup>
21
+ <PropertyGroup Label="Globals">
22
+ <ProjectGuid>{9800039D-4AAA-43A4-BB78-FEF6F4836927}</ProjectGuid>
23
+ <Keyword>Win32Proj</Keyword>
24
+ <RootNamespace>liblz4-dll</RootNamespace>
25
+ <OutDir>$(SolutionDir)bin\$(Platform)_$(Configuration)\</OutDir>
26
+ <IntDir>$(SolutionDir)bin\obj\$(RootNamespace)_$(Platform)_$(Configuration)\</IntDir>
27
+ <ProjectName>liblz4-dll</ProjectName>
28
+ </PropertyGroup>
29
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
30
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
31
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
32
+ <UseDebugLibraries>true</UseDebugLibraries>
33
+ <CharacterSet>Unicode</CharacterSet>
34
+ <PlatformToolset>v143</PlatformToolset>
35
+ </PropertyGroup>
36
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
37
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
38
+ <UseDebugLibraries>true</UseDebugLibraries>
39
+ <CharacterSet>Unicode</CharacterSet>
40
+ <PlatformToolset>v143</PlatformToolset>
41
+ </PropertyGroup>
42
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
43
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
44
+ <UseDebugLibraries>false</UseDebugLibraries>
45
+ <CharacterSet>Unicode</CharacterSet>
46
+ <WholeProgramOptimization Condition="'$(EnableWholeProgramOptimization)'=='true'">true</WholeProgramOptimization>
47
+ <PlatformToolset>v143</PlatformToolset>
48
+ </PropertyGroup>
49
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
50
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
51
+ <UseDebugLibraries>false</UseDebugLibraries>
52
+ <CharacterSet>Unicode</CharacterSet>
53
+ <WholeProgramOptimization Condition="'$(EnableWholeProgramOptimization)'=='true'">true</WholeProgramOptimization>
54
+ <PlatformToolset>v143</PlatformToolset>
55
+ </PropertyGroup>
56
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
57
+ <ImportGroup Label="ExtensionSettings">
58
+ </ImportGroup>
59
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
60
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
61
+ </ImportGroup>
62
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
63
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
64
+ </ImportGroup>
65
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
66
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
67
+ </ImportGroup>
68
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
69
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
70
+ </ImportGroup>
71
+ <PropertyGroup Label="UserMacros" />
72
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
73
+ <LinkIncremental>true</LinkIncremental>
74
+ <TargetName>liblz4</TargetName>
75
+ <IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
76
+ </PropertyGroup>
77
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
78
+ <LinkIncremental>true</LinkIncremental>
79
+ <TargetName>liblz4</TargetName>
80
+ <IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
81
+ <RunCodeAnalysis>true</RunCodeAnalysis>
82
+ </PropertyGroup>
83
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
84
+ <LinkIncremental>false</LinkIncremental>
85
+ <TargetName>liblz4</TargetName>
86
+ <IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
87
+ </PropertyGroup>
88
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
89
+ <LinkIncremental>false</LinkIncremental>
90
+ <TargetName>liblz4</TargetName>
91
+ <IncludePath>$(IncludePath);$(UniversalCRT_IncludePath);$(SolutionDir)..\..\lib;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);</IncludePath>
92
+ <RunCodeAnalysis>true</RunCodeAnalysis>
93
+ </PropertyGroup>
94
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
95
+ <ClCompile>
96
+ <PrecompiledHeader>
97
+ </PrecompiledHeader>
98
+ <WarningLevel>Level4</WarningLevel>
99
+ <Optimization>Disabled</Optimization>
100
+ <PreprocessorDefinitions>WIN32;_DEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
101
+ <TreatWarningAsError>true</TreatWarningAsError>
102
+ <EnablePREfast>false</EnablePREfast>
103
+ <RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreadedDebug</RuntimeLibrary>
104
+ </ClCompile>
105
+ <Link>
106
+ <GenerateDebugInformation>true</GenerateDebugInformation>
107
+ </Link>
108
+ </ItemDefinitionGroup>
109
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
110
+ <ClCompile>
111
+ <PrecompiledHeader>
112
+ </PrecompiledHeader>
113
+ <WarningLevel>Level4</WarningLevel>
114
+ <Optimization>Disabled</Optimization>
115
+ <PreprocessorDefinitions>WIN32;_DEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
116
+ <TreatWarningAsError>true</TreatWarningAsError>
117
+ <EnablePREfast>true</EnablePREfast>
118
+ <AdditionalOptions>/analyze:stacksize295252 %(AdditionalOptions)</AdditionalOptions>
119
+ <RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreadedDebug</RuntimeLibrary>
120
+ </ClCompile>
121
+ <Link>
122
+ <GenerateDebugInformation>true</GenerateDebugInformation>
123
+ </Link>
124
+ </ItemDefinitionGroup>
125
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
126
+ <ClCompile>
127
+ <WarningLevel>Level4</WarningLevel>
128
+ <PrecompiledHeader>
129
+ </PrecompiledHeader>
130
+ <Optimization>MaxSpeed</Optimization>
131
+ <FunctionLevelLinking>true</FunctionLevelLinking>
132
+ <IntrinsicFunctions>true</IntrinsicFunctions>
133
+ <PreprocessorDefinitions>WIN32;NDEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
134
+ <TreatWarningAsError>false</TreatWarningAsError>
135
+ <EnablePREfast>false</EnablePREfast>
136
+ <RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreaded</RuntimeLibrary>
137
+ </ClCompile>
138
+ <Link>
139
+ <GenerateDebugInformation>true</GenerateDebugInformation>
140
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
141
+ <OptimizeReferences>true</OptimizeReferences>
142
+ </Link>
143
+ </ItemDefinitionGroup>
144
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
145
+ <ClCompile>
146
+ <WarningLevel>Level4</WarningLevel>
147
+ <PrecompiledHeader>
148
+ </PrecompiledHeader>
149
+ <Optimization>MaxSpeed</Optimization>
150
+ <FunctionLevelLinking>true</FunctionLevelLinking>
151
+ <IntrinsicFunctions>true</IntrinsicFunctions>
152
+ <PreprocessorDefinitions>WIN32;NDEBUG;LZ4_DLL_EXPORT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
153
+ <TreatWarningAsError>false</TreatWarningAsError>
154
+ <EnablePREfast>true</EnablePREfast>
155
+ <AdditionalOptions>/analyze:stacksize295252 %(AdditionalOptions)</AdditionalOptions>
156
+ <RuntimeLibrary Condition="'$(UseStaticCRT)'=='true'">MultiThreaded</RuntimeLibrary>
157
+ </ClCompile>
158
+ <Link>
159
+ <GenerateDebugInformation>true</GenerateDebugInformation>
160
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
161
+ <OptimizeReferences>true</OptimizeReferences>
162
+ </Link>
163
+ </ItemDefinitionGroup>
164
+ <ItemGroup>
165
+ <ClInclude Include="..\..\..\lib\lz4.h" />
166
+ <ClInclude Include="..\..\..\lib\lz4frame.h" />
167
+ <ClInclude Include="..\..\..\lib\lz4frame_static.h" />
168
+ <ClInclude Include="..\..\..\lib\lz4hc.h" />
169
+ <ClInclude Include="..\..\..\lib\xxhash.h" />
170
+ </ItemGroup>
171
+ <ItemGroup>
172
+ <ClCompile Include="..\..\..\lib\lz4.c" />
173
+ <ClCompile Include="..\..\..\lib\lz4frame.c" />
174
+ <ClCompile Include="..\..\..\lib\lz4hc.c" />
175
+ <ClCompile Include="..\..\..\lib\xxhash.c" />
176
+ </ItemGroup>
177
+ <ItemGroup>
178
+ <ResourceCompile Include="liblz4-dll.rc" />
179
+ </ItemGroup>
180
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
181
+ <ImportGroup Label="ExtensionTargets">
182
+ </ImportGroup>
183
+ </Project>
@@ -0,0 +1,103 @@
1
+ Microsoft Visual Studio Solution File, Format Version 12.00
2
+ # Visual Studio 15
3
+ VisualStudioVersion = 15.0.28307.271
4
+ MinimumVisualStudioVersion = 10.0.40219.1
5
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblz4-dll", "liblz4-dll\liblz4-dll.vcxproj", "{9800039D-4AAA-43A4-BB78-FEF6F4836927}"
6
+ EndProject
7
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblz4", "liblz4\liblz4.vcxproj", "{9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}"
8
+ EndProject
9
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fuzzer", "fuzzer\fuzzer.vcxproj", "{18B9F1A7-9C66-4352-898B-30804DADE0FD}"
10
+ EndProject
11
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fullbench", "fullbench\fullbench.vcxproj", "{6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}"
12
+ EndProject
13
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "frametest", "frametest\frametest.vcxproj", "{39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}"
14
+ EndProject
15
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "datagen", "datagen\datagen.vcxproj", "{D745AE2F-596A-403A-9B91-81A8C6779243}"
16
+ EndProject
17
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fullbench-dll", "fullbench-dll\fullbench-dll.vcxproj", "{13992FD2-077E-4954-B065-A428198201A9}"
18
+ ProjectSection(ProjectDependencies) = postProject
19
+ {9800039D-4AAA-43A4-BB78-FEF6F4836927} = {9800039D-4AAA-43A4-BB78-FEF6F4836927}
20
+ EndProjectSection
21
+ EndProject
22
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lz4", "lz4\lz4.vcxproj", "{60A3115E-B988-41EE-8815-F4D4F253D866}"
23
+ EndProject
24
+ Global
25
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
26
+ Debug|Win32 = Debug|Win32
27
+ Debug|x64 = Debug|x64
28
+ Release|Win32 = Release|Win32
29
+ Release|x64 = Release|x64
30
+ EndGlobalSection
31
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
32
+ {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Debug|Win32.ActiveCfg = Debug|Win32
33
+ {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Debug|Win32.Build.0 = Debug|Win32
34
+ {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Debug|x64.ActiveCfg = Debug|x64
35
+ {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Debug|x64.Build.0 = Debug|x64
36
+ {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Release|Win32.ActiveCfg = Release|Win32
37
+ {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Release|Win32.Build.0 = Release|Win32
38
+ {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Release|x64.ActiveCfg = Release|x64
39
+ {9800039D-4AAA-43A4-BB78-FEF6F4836927}.Release|x64.Build.0 = Release|x64
40
+ {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Debug|Win32.ActiveCfg = Debug|Win32
41
+ {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Debug|Win32.Build.0 = Debug|Win32
42
+ {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Debug|x64.ActiveCfg = Debug|x64
43
+ {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Debug|x64.Build.0 = Debug|x64
44
+ {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Release|Win32.ActiveCfg = Release|Win32
45
+ {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Release|Win32.Build.0 = Release|Win32
46
+ {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Release|x64.ActiveCfg = Release|x64
47
+ {9092C5CC-3E71-41B3-BF68-4A7BDD8A5476}.Release|x64.Build.0 = Release|x64
48
+ {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Debug|Win32.ActiveCfg = Debug|Win32
49
+ {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Debug|Win32.Build.0 = Debug|Win32
50
+ {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Debug|x64.ActiveCfg = Debug|x64
51
+ {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Debug|x64.Build.0 = Debug|x64
52
+ {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Release|Win32.ActiveCfg = Release|Win32
53
+ {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Release|Win32.Build.0 = Release|Win32
54
+ {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Release|x64.ActiveCfg = Release|x64
55
+ {18B9F1A7-9C66-4352-898B-30804DADE0FD}.Release|x64.Build.0 = Release|x64
56
+ {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Debug|Win32.ActiveCfg = Debug|Win32
57
+ {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Debug|Win32.Build.0 = Debug|Win32
58
+ {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Debug|x64.ActiveCfg = Debug|x64
59
+ {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Debug|x64.Build.0 = Debug|x64
60
+ {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Release|Win32.ActiveCfg = Release|Win32
61
+ {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Release|Win32.Build.0 = Release|Win32
62
+ {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Release|x64.ActiveCfg = Release|x64
63
+ {6A4DF4EF-C77F-43C6-8901-DDCD20879E4E}.Release|x64.Build.0 = Release|x64
64
+ {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Debug|Win32.ActiveCfg = Debug|Win32
65
+ {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Debug|Win32.Build.0 = Debug|Win32
66
+ {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Debug|x64.ActiveCfg = Debug|x64
67
+ {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Debug|x64.Build.0 = Debug|x64
68
+ {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Release|Win32.ActiveCfg = Release|Win32
69
+ {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Release|Win32.Build.0 = Release|Win32
70
+ {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Release|x64.ActiveCfg = Release|x64
71
+ {39AD6ECC-8BAD-4368-95E4-A1AA2F077BB7}.Release|x64.Build.0 = Release|x64
72
+ {D745AE2F-596A-403A-9B91-81A8C6779243}.Debug|Win32.ActiveCfg = Debug|Win32
73
+ {D745AE2F-596A-403A-9B91-81A8C6779243}.Debug|Win32.Build.0 = Debug|Win32
74
+ {D745AE2F-596A-403A-9B91-81A8C6779243}.Debug|x64.ActiveCfg = Debug|x64
75
+ {D745AE2F-596A-403A-9B91-81A8C6779243}.Debug|x64.Build.0 = Debug|x64
76
+ {D745AE2F-596A-403A-9B91-81A8C6779243}.Release|Win32.ActiveCfg = Release|Win32
77
+ {D745AE2F-596A-403A-9B91-81A8C6779243}.Release|Win32.Build.0 = Release|Win32
78
+ {D745AE2F-596A-403A-9B91-81A8C6779243}.Release|x64.ActiveCfg = Release|x64
79
+ {D745AE2F-596A-403A-9B91-81A8C6779243}.Release|x64.Build.0 = Release|x64
80
+ {13992FD2-077E-4954-B065-A428198201A9}.Debug|Win32.ActiveCfg = Debug|Win32
81
+ {13992FD2-077E-4954-B065-A428198201A9}.Debug|Win32.Build.0 = Debug|Win32
82
+ {13992FD2-077E-4954-B065-A428198201A9}.Debug|x64.ActiveCfg = Debug|x64
83
+ {13992FD2-077E-4954-B065-A428198201A9}.Debug|x64.Build.0 = Debug|x64
84
+ {13992FD2-077E-4954-B065-A428198201A9}.Release|Win32.ActiveCfg = Release|Win32
85
+ {13992FD2-077E-4954-B065-A428198201A9}.Release|Win32.Build.0 = Release|Win32
86
+ {13992FD2-077E-4954-B065-A428198201A9}.Release|x64.ActiveCfg = Release|x64
87
+ {13992FD2-077E-4954-B065-A428198201A9}.Release|x64.Build.0 = Release|x64
88
+ {60A3115E-B988-41EE-8815-F4D4F253D866}.Debug|Win32.ActiveCfg = Debug|Win32
89
+ {60A3115E-B988-41EE-8815-F4D4F253D866}.Debug|Win32.Build.0 = Debug|Win32
90
+ {60A3115E-B988-41EE-8815-F4D4F253D866}.Debug|x64.ActiveCfg = Debug|x64
91
+ {60A3115E-B988-41EE-8815-F4D4F253D866}.Debug|x64.Build.0 = Debug|x64
92
+ {60A3115E-B988-41EE-8815-F4D4F253D866}.Release|Win32.ActiveCfg = Release|Win32
93
+ {60A3115E-B988-41EE-8815-F4D4F253D866}.Release|Win32.Build.0 = Release|Win32
94
+ {60A3115E-B988-41EE-8815-F4D4F253D866}.Release|x64.ActiveCfg = Release|x64
95
+ {60A3115E-B988-41EE-8815-F4D4F253D866}.Release|x64.Build.0 = Release|x64
96
+ EndGlobalSection
97
+ GlobalSection(SolutionProperties) = preSolution
98
+ HideSolutionNode = FALSE
99
+ EndGlobalSection
100
+ GlobalSection(ExtensibilityGlobals) = postSolution
101
+ SolutionGuid = {BBC259B2-BABF-47CD-8A6A-7B8318A803AC}
102
+ EndGlobalSection
103
+ EndGlobal
@@ -10,10 +10,9 @@
10
10
  # LZ4's CMake support is maintained by Evan Nemerson; when filing
11
11
  # bugs please mention @nemequ to make sure I see it.
12
12
 
13
- set(LZ4_TOP_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
13
+ cmake_minimum_required(VERSION 2.8.12)
14
14
 
15
- option(LZ4_BUILD_CLI "Build lz4 program" ON)
16
- option(LZ4_BUILD_LEGACY_LZ4C "Build lz4c progam with legacy argument support" ON)
15
+ set(LZ4_TOP_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
17
16
 
18
17
  # Parse version information
19
18
  file(STRINGS "${LZ4_TOP_SOURCE_DIR}/lib/lz4.h" LZ4_VERSION_MAJOR REGEX "^#define LZ4_VERSION_MAJOR +([0-9]+) +.*$")
@@ -34,7 +33,8 @@ else()
34
33
  LANGUAGES C)
35
34
  endif()
36
35
 
37
- cmake_minimum_required (VERSION 2.8.6)
36
+ option(LZ4_BUILD_CLI "Build lz4 program" ON)
37
+ option(LZ4_BUILD_LEGACY_LZ4C "Build lz4c program with legacy argument support" ON)
38
38
 
39
39
  # If LZ4 is being bundled in another project, we don't want to
40
40
  # install anything. However, we want to let people override this, so
@@ -103,6 +103,9 @@ option(LZ4_POSITION_INDEPENDENT_LIB "Use position independent code for static li
103
103
  set(LZ4_LIBRARIES_BUILT)
104
104
  if(BUILD_SHARED_LIBS)
105
105
  add_library(lz4_shared SHARED ${LZ4_SOURCES})
106
+ target_include_directories(lz4_shared
107
+ PUBLIC $<BUILD_INTERFACE:${LZ4_LIB_SOURCE_DIR}>
108
+ INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
106
109
  set_target_properties(lz4_shared PROPERTIES
107
110
  OUTPUT_NAME lz4
108
111
  SOVERSION "${LZ4_VERSION_MAJOR}"
@@ -114,18 +117,24 @@ if(BUILD_SHARED_LIBS)
114
117
  list(APPEND LZ4_LIBRARIES_BUILT lz4_shared)
115
118
  endif()
116
119
  if(BUILD_STATIC_LIBS)
120
+ set(STATIC_LIB_NAME lz4)
121
+ if (MSVC AND BUILD_SHARED_LIBS)
122
+ set(STATIC_LIB_NAME lz4_static)
123
+ endif()
117
124
  add_library(lz4_static STATIC ${LZ4_SOURCES})
125
+ target_include_directories(lz4_static
126
+ PUBLIC $<BUILD_INTERFACE:${LZ4_LIB_SOURCE_DIR}>
127
+ INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
118
128
  set_target_properties(lz4_static PROPERTIES
119
- OUTPUT_NAME lz4
129
+ OUTPUT_NAME ${STATIC_LIB_NAME}
120
130
  POSITION_INDEPENDENT_CODE ${LZ4_POSITION_INDEPENDENT_LIB})
121
131
  list(APPEND LZ4_LIBRARIES_BUILT lz4_static)
122
132
  endif()
123
133
 
124
- # link to shared whenever possible, to static otherwise
125
- if(BUILD_SHARED_LIBS)
126
- set(LZ4_LINK_LIBRARY lz4_shared)
127
- else()
134
+ if(BUILD_STATIC_LIBS)
128
135
  set(LZ4_LINK_LIBRARY lz4_static)
136
+ else()
137
+ list(APPEND LZ4_CLI_SOURCES ${LZ4_SOURCES})
129
138
  endif()
130
139
 
131
140
  # lz4
@@ -133,7 +142,9 @@ if (LZ4_BUILD_CLI)
133
142
  set(LZ4_PROGRAMS_BUILT lz4cli)
134
143
  add_executable(lz4cli ${LZ4_CLI_SOURCES})
135
144
  set_target_properties(lz4cli PROPERTIES OUTPUT_NAME lz4)
136
- target_link_libraries(lz4cli ${LZ4_LINK_LIBRARY})
145
+ if (BUILD_STATIC_LIBS)
146
+ target_link_libraries(lz4cli ${LZ4_LINK_LIBRARY})
147
+ endif()
137
148
  endif()
138
149
 
139
150
  # lz4c
@@ -141,7 +152,9 @@ if (LZ4_BUILD_LEGACY_LZ4C)
141
152
  list(APPEND LZ4_PROGRAMS_BUILT lz4c)
142
153
  add_executable(lz4c ${LZ4_CLI_SOURCES})
143
154
  set_target_properties(lz4c PROPERTIES COMPILE_DEFINITIONS "ENABLE_LZ4C_LEGACY_OPTIONS")
144
- target_link_libraries(lz4c ${LZ4_LINK_LIBRARY})
155
+ if (BUILD_STATIC_LIBS)
156
+ target_link_libraries(lz4c ${LZ4_LINK_LIBRARY})
157
+ endif()
145
158
  endif()
146
159
 
147
160
  # Extra warning flags
@@ -182,6 +195,7 @@ if(NOT LZ4_BUNDLED_MODE)
182
195
  BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}"
183
196
  RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
184
197
  install(TARGETS ${LZ4_LIBRARIES_BUILT}
198
+ EXPORT lz4Targets
185
199
  LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
186
200
  ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
187
201
  RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
@@ -195,6 +209,30 @@ if(NOT LZ4_BUNDLED_MODE)
195
209
  install(FILES "${CMAKE_CURRENT_BINARY_DIR}/liblz4.pc"
196
210
  DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
197
211
 
212
+ include(CMakePackageConfigHelpers)
213
+ write_basic_package_version_file(
214
+ "${CMAKE_CURRENT_BINARY_DIR}/lz4ConfigVersion.cmake"
215
+ VERSION ${LZ4_VERSION_STRING}
216
+ COMPATIBILITY SameMajorVersion)
217
+
218
+ set(LZ4_PKG_INSTALLDIR "${CMAKE_INSTALL_LIBDIR}/cmake/lz4")
219
+ configure_package_config_file(
220
+ "${CMAKE_CURRENT_LIST_DIR}/lz4Config.cmake.in"
221
+ "${CMAKE_CURRENT_BINARY_DIR}/lz4Config.cmake"
222
+ INSTALL_DESTINATION ${LZ4_PKG_INSTALLDIR})
223
+ export(EXPORT lz4Targets
224
+ FILE ${CMAKE_CURRENT_BINARY_DIR}/lz4Targets.cmake
225
+ NAMESPACE LZ4::)
226
+
227
+ install(EXPORT lz4Targets
228
+ FILE lz4Targets.cmake
229
+ NAMESPACE LZ4::
230
+ DESTINATION ${LZ4_PKG_INSTALLDIR})
231
+ install(FILES
232
+ ${CMAKE_CURRENT_BINARY_DIR}/lz4Config.cmake
233
+ ${CMAKE_CURRENT_BINARY_DIR}/lz4ConfigVersion.cmake
234
+ DESTINATION ${LZ4_PKG_INSTALLDIR})
235
+
198
236
  # install lz4cat and unlz4 symlinks on *nix
199
237
  if(UNIX AND LZ4_BUILD_CLI)
200
238
  install(CODE "
@@ -0,0 +1,2 @@
1
+ @PACKAGE_INIT@
2
+ include( "${CMAKE_CURRENT_LIST_DIR}/lz4Targets.cmake" )
@@ -1,5 +1,5 @@
1
1
  LZ4 Library
2
- Copyright (c) 2011-2016, Yann Collet
2
+ Copyright (c) 2011-2020, Yann Collet
3
3
  All rights reserved.
4
4
 
5
5
  Redistribution and use in source and binary forms, with or without modification,