extlz4 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
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,