extlz4 0.3.3 → 0.3.5

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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/Rakefile +43 -3
  4. data/contrib/lz4/CODING_STYLE +57 -0
  5. data/contrib/lz4/LICENSE +3 -2
  6. data/contrib/lz4/Makefile.inc +56 -30
  7. data/contrib/lz4/NEWS +46 -0
  8. data/contrib/lz4/README.md +17 -6
  9. data/contrib/lz4/SECURITY.md +17 -0
  10. data/contrib/lz4/build/README.md +4 -15
  11. data/contrib/lz4/build/VS2022/_build.bat +39 -0
  12. data/contrib/lz4/build/VS2022/_setup.bat +35 -0
  13. data/contrib/lz4/build/VS2022/_test.bat +38 -0
  14. data/contrib/lz4/build/VS2022/build-and-test-win32-debug.bat +26 -0
  15. data/contrib/lz4/build/VS2022/build-and-test-win32-release.bat +26 -0
  16. data/contrib/lz4/build/VS2022/build-and-test-x64-debug.bat +26 -0
  17. data/contrib/lz4/build/VS2022/build-and-test-x64-release.bat +26 -0
  18. data/contrib/lz4/build/{VS2017 → VS2022}/datagen/datagen.vcxproj +11 -7
  19. data/contrib/lz4/build/{VS2017 → VS2022}/frametest/frametest.vcxproj +4 -4
  20. data/contrib/lz4/build/{VS2017 → VS2022}/fullbench/fullbench.vcxproj +4 -4
  21. data/contrib/lz4/build/{VS2017 → VS2022}/fullbench-dll/fullbench-dll.vcxproj +4 -4
  22. data/contrib/lz4/build/{VS2017 → VS2022}/fuzzer/fuzzer.vcxproj +4 -4
  23. data/contrib/lz4/build/{VS2017 → VS2022}/liblz4/liblz4.vcxproj +4 -4
  24. data/contrib/lz4/build/{VS2010 → VS2022}/liblz4-dll/liblz4-dll.rc +1 -1
  25. data/contrib/lz4/build/{VS2017 → VS2022}/liblz4-dll/liblz4-dll.vcxproj +4 -4
  26. data/contrib/lz4/build/{VS2010 → VS2022}/lz4/lz4.rc +1 -1
  27. data/contrib/lz4/build/{VS2017 → VS2022}/lz4/lz4.vcxproj +33 -8
  28. data/contrib/lz4/build/{VS2017 → VS2022}/lz4.sln +5 -2
  29. data/contrib/lz4/build/cmake/CMakeLists.txt +133 -100
  30. data/contrib/lz4/build/cmake/lz4Config.cmake.in +2 -0
  31. data/contrib/lz4/build/meson/GetLz4LibraryVersion.py +39 -0
  32. data/contrib/lz4/build/meson/README.md +34 -0
  33. data/contrib/lz4/build/meson/meson/contrib/gen_manual/meson.build +42 -0
  34. data/contrib/lz4/build/meson/meson/contrib/meson.build +11 -0
  35. data/contrib/lz4/build/meson/meson/examples/meson.build +32 -0
  36. data/contrib/lz4/build/meson/meson/lib/meson.build +87 -0
  37. data/contrib/lz4/build/meson/meson/meson.build +135 -0
  38. data/contrib/lz4/build/meson/meson/ossfuzz/meson.build +35 -0
  39. data/contrib/lz4/build/meson/meson/programs/meson.build +91 -0
  40. data/contrib/lz4/build/meson/meson/tests/meson.build +162 -0
  41. data/contrib/lz4/build/meson/meson.build +31 -0
  42. data/contrib/lz4/build/meson/meson_options.txt +44 -0
  43. data/contrib/lz4/build/visual/README.md +5 -0
  44. data/contrib/lz4/build/visual/generate_solution.cmd +55 -0
  45. data/contrib/lz4/build/visual/generate_vs2015.cmd +3 -0
  46. data/contrib/lz4/build/visual/generate_vs2017.cmd +3 -0
  47. data/contrib/lz4/build/visual/generate_vs2019.cmd +3 -0
  48. data/contrib/lz4/build/visual/generate_vs2022.cmd +3 -0
  49. data/contrib/lz4/lib/LICENSE +1 -1
  50. data/contrib/lz4/lib/README.md +69 -13
  51. data/contrib/lz4/lib/liblz4-dll.rc.in +1 -1
  52. data/contrib/lz4/lib/liblz4.pc.in +3 -3
  53. data/contrib/lz4/lib/lz4.c +608 -274
  54. data/contrib/lz4/lib/lz4.h +212 -102
  55. data/contrib/lz4/lib/lz4file.c +341 -0
  56. data/contrib/lz4/lib/lz4file.h +93 -0
  57. data/contrib/lz4/lib/lz4frame.c +545 -308
  58. data/contrib/lz4/lib/lz4frame.h +252 -124
  59. data/contrib/lz4/lib/lz4frame_static.h +1 -1
  60. data/contrib/lz4/lib/lz4hc.c +1038 -461
  61. data/contrib/lz4/lib/lz4hc.h +57 -56
  62. data/contrib/lz4/lib/xxhash.c +21 -21
  63. data/contrib/lz4/ossfuzz/Makefile +1 -0
  64. data/contrib/lz4/ossfuzz/decompress_fuzzer.c +18 -2
  65. data/contrib/lz4/ossfuzz/fuzz_helpers.h +4 -3
  66. data/contrib/lz4/ossfuzz/round_trip_frame_uncompressed_fuzzer.c +134 -0
  67. data/contrib/lz4/ossfuzz/round_trip_fuzzer.c +66 -6
  68. data/ext/blockapi.c +19 -19
  69. data/ext/extlz4.h +12 -0
  70. data/ext/frameapi.c +26 -26
  71. data/ext/hashargs.c +7 -1
  72. metadata +47 -30
  73. data/contrib/lz4/build/VS2010/datagen/datagen.vcxproj +0 -169
  74. data/contrib/lz4/build/VS2010/frametest/frametest.vcxproj +0 -176
  75. data/contrib/lz4/build/VS2010/fullbench/fullbench.vcxproj +0 -176
  76. data/contrib/lz4/build/VS2010/fullbench-dll/fullbench-dll.vcxproj +0 -180
  77. data/contrib/lz4/build/VS2010/fuzzer/fuzzer.vcxproj +0 -173
  78. data/contrib/lz4/build/VS2010/liblz4/liblz4.vcxproj +0 -175
  79. data/contrib/lz4/build/VS2010/liblz4-dll/liblz4-dll.vcxproj +0 -179
  80. data/contrib/lz4/build/VS2010/lz4/lz4.vcxproj +0 -189
  81. data/contrib/lz4/build/VS2010/lz4.sln +0 -98
  82. data/contrib/lz4/build/VS2017/liblz4-dll/liblz4-dll.rc +0 -51
  83. data/contrib/lz4/build/VS2017/lz4/lz4.rc +0 -51
  84. data/contrib/lz4/tmp +0 -0
  85. data/contrib/lz4/tmpsparse +0 -0
@@ -0,0 +1,135 @@
1
+ # #############################################################################
2
+ # Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
3
+ # Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
4
+ # All rights reserved.
5
+ #
6
+ # This source code is licensed under both the BSD-style license (found in the
7
+ # LICENSE file in the root directory of this source tree) and the GPLv2 (found
8
+ # in the COPYING file in the root directory of this source tree).
9
+ # #############################################################################
10
+
11
+ cc = meson.get_compiler('c')
12
+
13
+ fs = import('fs')
14
+ pkgconfig = import('pkgconfig')
15
+
16
+ lz4_source_root = '../../..'
17
+
18
+ add_project_arguments('-DXXH_NAMESPACE=LZ4_', language: 'c')
19
+
20
+ if get_option('debug')
21
+ add_project_arguments(cc.get_supported_arguments(
22
+ '-Wcast-qual',
23
+ '-Wcast-align',
24
+ '-Wshadow',
25
+ '-Wswitch-enum',
26
+ '-Wdeclaration-after-statement',
27
+ '-Wstrict-prototypes',
28
+ '-Wundef',
29
+ '-Wpointer-arith',
30
+ '-Wstrict-aliasing=1',
31
+ '-DLZ4_DEBUG=@0@'.format(get_option('debug-level'))
32
+ ),
33
+ language: 'c'
34
+ )
35
+ endif
36
+
37
+ compile_args = []
38
+
39
+ if not get_option('align-test')
40
+ add_project_arguments('-DLZ4_ALIGN_TEST=0', language: 'c')
41
+ endif
42
+
43
+ if get_option('disable-memory-allocation')
44
+ if get_option('default_library') != 'static'
45
+ error('Memory allocation can only be disabled in static builds')
46
+ endif
47
+
48
+ add_project_arguments('-DLZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION')
49
+ compile_args += '-DLZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION'
50
+ endif
51
+
52
+ add_project_arguments(
53
+ '-DLZ4_DISTANCE_MAX=@0@'.format(get_option('distance-max')),
54
+ language: 'c'
55
+ )
56
+ compile_args += '-DLZ4_DISTANCE_MAX=@0@'.format(get_option('distance-max'))
57
+
58
+ if not get_option('fast-dec-loop').auto()
59
+ add_project_arguments(
60
+ '-DLZ4_FAST_DEC_LOOP=@0@'.format(
61
+ get_option('fast-dec-loop').enabled() ? 1 : 0
62
+ ),
63
+ language: 'c'
64
+ )
65
+ endif
66
+
67
+ if get_option('force-sw-bitcount')
68
+ add_project_arguments('-DLZ4_FORCE_SW_BITCOUNT', language: 'c')
69
+ endif
70
+
71
+ if get_option('freestanding')
72
+ add_project_arguments('-DLZ4_FREESTANDING=1', language: 'c')
73
+ compile_args += '-DLZ4_FREESTANDING=1'
74
+ endif
75
+
76
+ if get_option('memory-usage') > 0
77
+ add_project_arguments(
78
+ '-DLZ4_MEMORY_USAGE=@0@'.format(get_option('memory-usage')),
79
+ language: 'c'
80
+ )
81
+ compile_args += '-DLZ4_MEMORY_USAGE=@0@'.format(get_option('memory-usage'))
82
+ endif
83
+
84
+ if get_option('endianness-independent-output')
85
+ if get_option('default_library') != 'static'
86
+ error('Endianness-independent output can only be enabled in static builds')
87
+ endif
88
+
89
+ add_project_arguments('-DLZ4_STATIC_LINKING_ONLY_ENDIANNESS_INDEPENDENT_OUTPUT')
90
+ compile_args += '-DLZ4_STATIC_LINKING_ONLY_ENDIANNESS_INDEPENDENT_OUTPUT'
91
+ endif
92
+
93
+ if get_option('unstable')
94
+ add_project_arguments('-DLZ4_STATIC_LINKING_ONLY', language: 'c')
95
+ compile_args += '-DLZ4_STATIC_LINKING_ONLY'
96
+ if get_option('default_library') != 'static'
97
+ add_project_arguments('-DLZ4_PUBLISH_STATIC_FUNCTIONS', language: 'c')
98
+ compile_args += '-DLZ4_PUBLISH_STATIC_FUNCTIONS'
99
+
100
+ add_project_arguments('-DLZ4F_PUBLISH_STATIC_FUNCTIONS', language: 'c')
101
+ compile_args += '-DLZ4F_PUBLISH_STATIC_FUNCTIONS'
102
+ endif
103
+ endif
104
+
105
+ if get_option('user-memory-functions')
106
+ add_project_arguments('-DLZ4_USER_MEMORY_FUNCTIONS', language: 'c')
107
+ endif
108
+
109
+ run_env = environment()
110
+
111
+ subdir('lib')
112
+
113
+ if get_option('programs')
114
+ subdir('programs')
115
+ else
116
+ lz4 = disabler()
117
+ lz4cat = disabler()
118
+ unlz4 = disabler()
119
+ endif
120
+
121
+ if get_option('tests')
122
+ subdir('tests')
123
+ endif
124
+
125
+ if get_option('contrib')
126
+ subdir('contrib')
127
+ endif
128
+
129
+ if get_option('examples')
130
+ subdir('examples')
131
+ endif
132
+
133
+ if get_option('ossfuzz')
134
+ subdir('ossfuzz')
135
+ endif
@@ -0,0 +1,35 @@
1
+ fuzzers = [
2
+ 'compress_frame_fuzzer',
3
+ 'compress_fuzzer',
4
+ 'compress_hc_fuzzer',
5
+ 'decompress_frame_fuzzer',
6
+ 'decompress_fuzzer',
7
+ 'round_trip_frame_uncompressed_fuzzer',
8
+ 'round_trip_fuzzer',
9
+ 'round_trip_hc_fuzzer',
10
+ 'round_trip_stream_fuzzer'
11
+ ]
12
+
13
+ c_args = cc.get_supported_arguments(
14
+ '-Wno-unused-function',
15
+ '-Wno-sign-compare',
16
+ '-Wno-declaration-after-statement'
17
+ )
18
+
19
+ foreach f : fuzzers
20
+ lib = static_library(
21
+ f,
22
+ lz4_source_root / 'ossfuzz/@0@.c'.format(f),
23
+ lz4_source_root / 'ossfuzz/lz4_helpers.c',
24
+ lz4_source_root / 'ossfuzz/fuzz_data_producer.c',
25
+ c_args: c_args,
26
+ dependencies: [liblz4_internal_dep]
27
+ )
28
+
29
+ executable(
30
+ f,
31
+ lz4_source_root / 'ossfuzz/standaloneengine.c',
32
+ link_with: lib,
33
+ dependencies: [liblz4_internal_dep]
34
+ )
35
+ endforeach
@@ -0,0 +1,91 @@
1
+ # #############################################################################
2
+ # Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
3
+ # Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
4
+ # All rights reserved.
5
+ #
6
+ # This source code is licensed under both the BSD-style license (found in the
7
+ # LICENSE file in the root directory of this source tree) and the GPLv2 (found
8
+ # in the COPYING file in the root directory of this source tree).
9
+ # #############################################################################
10
+
11
+ lz4_source_root = '../../../..'
12
+
13
+ # note:
14
+ # it would be preferable to use some kind of glob or wildcard expansion here...
15
+ sources = files(
16
+ lz4_source_root / 'programs/bench.c',
17
+ lz4_source_root / 'programs/lorem.c',
18
+ lz4_source_root / 'programs/lz4cli.c',
19
+ lz4_source_root / 'programs/lz4io.c',
20
+ lz4_source_root / 'programs/util.c',
21
+ lz4_source_root / 'programs/threadpool.c',
22
+ lz4_source_root / 'programs/timefn.c',
23
+ )
24
+
25
+ # Initialize an empty list for extra dependencies
26
+ extra_deps = []
27
+
28
+ if get_option('enable_multithread')
29
+ pthread_dep = dependency('threads', required : true)
30
+ extra_deps += [pthread_dep]
31
+ multithread_args = ['-DLZ4IO_MULTITHREAD']
32
+ else
33
+ multithread_args = []
34
+ endif
35
+
36
+ lz4 = executable(
37
+ 'lz4',
38
+ sources,
39
+ include_directories: include_directories(lz4_source_root / 'programs'),
40
+ dependencies: [liblz4_internal_dep] + extra_deps,
41
+ c_args: multithread_args,
42
+ export_dynamic: get_option('debug') and host_machine.system() == 'windows',
43
+ install: true
44
+ )
45
+
46
+ lz4cat = custom_target(
47
+ 'lz4cat',
48
+ input: lz4,
49
+ output: 'lz4cat',
50
+ command: [
51
+ 'ln',
52
+ '--symbolic',
53
+ '--force',
54
+ fs.name(lz4.full_path()),
55
+ '@OUTPUT@'
56
+ ]
57
+ )
58
+
59
+ unlz4 = custom_target(
60
+ 'unlz4',
61
+ input: lz4,
62
+ output: 'unlz4',
63
+ command: [
64
+ 'ln',
65
+ '--symbolic',
66
+ '--force',
67
+ fs.name(lz4.full_path()),
68
+ '@OUTPUT@'
69
+ ]
70
+ )
71
+
72
+ meson.override_find_program('lz4', lz4)
73
+
74
+ run_env.prepend('PATH', meson.current_build_dir())
75
+
76
+ install_man(lz4_source_root / 'programs/lz4.1')
77
+
78
+ if meson.version().version_compare('>=0.61.0')
79
+ foreach alias : ['lz4c', 'lz4cat', 'unlz4']
80
+ install_symlink(
81
+ alias,
82
+ install_dir: get_option('bindir'),
83
+ pointing_to: 'lz4'
84
+ )
85
+ install_symlink(
86
+ '@0@.1'.format(alias),
87
+ install_dir: get_option('mandir') / 'man1',
88
+ pointing_to: 'lz4.1'
89
+ )
90
+ endforeach
91
+ endif
@@ -0,0 +1,162 @@
1
+ # #############################################################################
2
+ # Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
3
+ # Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
4
+ # All rights reserved.
5
+ #
6
+ # This source code is licensed under both the BSD-style license (found in the
7
+ # LICENSE file in the root directory of this source tree) and the GPLv2 (found
8
+ # in the COPYING file in the root directory of this source tree).
9
+ # #############################################################################
10
+
11
+ lz4_source_root = '../../../..'
12
+
13
+ fuzzer_time = 90
14
+ test_exes = {
15
+ 'abiTest': {
16
+ 'sources': files(lz4_source_root / 'tests/abiTest.c'),
17
+ 'test': false,
18
+ },
19
+ 'checkFrame': {
20
+ 'sources': files(lz4_source_root / 'tests/checkFrame.c'),
21
+ 'include_directories': include_directories(lz4_source_root / 'programs'),
22
+ },
23
+ 'checkTag': {
24
+ 'sources': files(lz4_source_root / 'tests/checkTag.c'),
25
+ 'test': false,
26
+ },
27
+ 'datagen': {
28
+ 'sources': files(
29
+ lz4_source_root / 'programs/lorem.c',
30
+ lz4_source_root / 'tests/datagencli.c',
31
+ lz4_source_root / 'tests/datagen.c',
32
+ lz4_source_root / 'tests/loremOut.c',
33
+ ),
34
+ 'include_directories': include_directories(lz4_source_root / 'programs'),
35
+ },
36
+ 'decompress-partial-usingDict.c': {
37
+ 'sources': files(lz4_source_root / 'tests/decompress-partial-usingDict.c'),
38
+ },
39
+ 'decompress-partial.c': {
40
+ 'sources': files(lz4_source_root / 'tests/decompress-partial.c'),
41
+ },
42
+ 'frametest': {
43
+ 'sources': files(lz4_source_root / 'tests/frametest.c'),
44
+ 'include_directories': include_directories(lz4_source_root / 'programs'),
45
+ 'args': ['-v', '-T@0@s'.format(fuzzer_time)],
46
+ 'test': false,
47
+ },
48
+ 'freestanding': {
49
+ 'sources': files(lz4_source_root / 'tests/freestanding.c'),
50
+ 'c_args': ['-ffreestanding', '-Wno-unused-parameter', '-Wno-declaration-after-statement'],
51
+ 'link_args': ['-nostdlib'],
52
+ 'build': cc.get_id() in ['gcc', 'clang'] and
53
+ host_machine.system() == 'linux' and host_machine.cpu_family() == 'x86_64',
54
+ 'override_options': ['optimization=1'],
55
+ },
56
+ 'fullbench': {
57
+ 'sources': files(lz4_source_root / 'tests/fullbench.c'),
58
+ 'include_directories': include_directories(lz4_source_root / 'programs'),
59
+ 'args': ['--no-prompt', '-i1', files(lz4_source_root / 'tests/COPYING')],
60
+ 'test': false,
61
+ },
62
+ 'fuzzer': {
63
+ 'sources': files(lz4_source_root / 'tests/fuzzer.c'),
64
+ 'include_directories': include_directories(lz4_source_root / 'programs'),
65
+ 'args': ['-T@0@s'.format(fuzzer_time)],
66
+ 'test': false,
67
+ },
68
+ 'roundTripTest': {
69
+ 'sources': files(lz4_source_root / 'tests/roundTripTest.c'),
70
+ 'test': false,
71
+ },
72
+ }
73
+
74
+ targets = {}
75
+
76
+ foreach e, attrs : test_exes
77
+ if not attrs.get('build', true)
78
+ targets += {e: disabler()}
79
+ continue
80
+ endif
81
+
82
+ t = executable(
83
+ e,
84
+ attrs.get('sources'),
85
+ c_args: attrs.get('c_args', []),
86
+ link_args: attrs.get('link_args', []),
87
+ objects: attrs.get('objects', []),
88
+ dependencies: [liblz4_internal_dep],
89
+ include_directories: attrs.get('include_directories', []),
90
+ install: false,
91
+ override_options: attrs.get('override_options', [])
92
+ )
93
+
94
+ targets += {e: t}
95
+
96
+ if not attrs.get('test', true)
97
+ continue
98
+ endif
99
+
100
+ test(
101
+ e,
102
+ t,
103
+ args: attrs.get('params', []),
104
+ timeout: 120
105
+ )
106
+ endforeach
107
+
108
+ fs = import('fs')
109
+
110
+ run_env.prepend('PATH', meson.current_build_dir())
111
+
112
+ test_scripts = {
113
+ 'lz4-basic': {
114
+ 'depends': [lz4, lz4cat, unlz4, targets['datagen']],
115
+ },
116
+ 'lz4-dict': {
117
+ 'depends': [lz4, targets['datagen']],
118
+ },
119
+ 'lz4-contentSize': {
120
+ 'depends': [lz4, targets['datagen']],
121
+ },
122
+ 'lz4-fast-hugefile': {
123
+ 'depends': [lz4, targets['datagen']],
124
+ },
125
+ 'lz4-frame-concatenation': {
126
+ 'depends': [lz4, targets['datagen']],
127
+ },
128
+ 'lz4-multiple': {
129
+ 'depends': [lz4, targets['datagen']],
130
+ },
131
+ 'lz4-multiple-legacy': {
132
+ 'depends': [lz4, targets['datagen']],
133
+ },
134
+ 'lz4-opt-parser': {
135
+ 'depends': [lz4, targets['datagen']],
136
+ },
137
+ 'lz4-skippable': {
138
+ 'depends': [lz4],
139
+ },
140
+ 'lz4-sparse': {
141
+ 'depends': [lz4, targets['datagen']],
142
+ },
143
+ 'lz4-testmode': {
144
+ 'depends': [lz4, targets['datagen']],
145
+ },
146
+ 'lz4hc-hugefile': {
147
+ 'depends': [lz4, targets['datagen']],
148
+ },
149
+ }
150
+
151
+ foreach s, attrs : test_scripts
152
+ script = find_program(lz4_source_root / 'tests/test-@0@.sh'.format(s))
153
+
154
+ test(
155
+ '@0@'.format(s),
156
+ script,
157
+ depends: attrs.get('depends', []),
158
+ workdir: fs.parent(script.full_path()),
159
+ env: run_env,
160
+ timeout: 360
161
+ )
162
+ endforeach
@@ -0,0 +1,31 @@
1
+ # #############################################################################
2
+ # Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
3
+ # All rights reserved.
4
+ #
5
+ # This source code is licensed under both the BSD-style license (found in the
6
+ # LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
+ # in the COPYING file in the root directory of this source tree).
8
+ # #############################################################################
9
+
10
+ # This is a dummy meson file.
11
+ # The intention is that it can be easily moved to the root of the project
12
+ # (together with meson_options.txt) and packaged for wrapdb.
13
+
14
+ project(
15
+ 'lz4',
16
+ 'c',
17
+ license: 'BSD-2-Clause-Patent AND GPL-2.0-or-later',
18
+ default_options: [
19
+ 'c_std=c99',
20
+ 'buildtype=release',
21
+ 'warning_level=3'
22
+ ],
23
+ version: run_command(
24
+ find_program('GetLz4LibraryVersion.py'),
25
+ '../../lib/lz4.h',
26
+ check: true
27
+ ).stdout().strip(),
28
+ meson_version: '>=0.58.0'
29
+ )
30
+
31
+ subdir('meson')
@@ -0,0 +1,44 @@
1
+ # #############################################################################
2
+ # Copyright (c) 2018-present lzutao <taolzu(at)gmail.com>
3
+ # Copyright (c) 2022-present Tristan Partin <tristan(at)partin.io>
4
+ # All rights reserved.
5
+ #
6
+ # This source code is licensed under both the BSD-style license (found in the
7
+ # LICENSE file in the root directory of this source tree) and the GPLv2 (found
8
+ # in the COPYING file in the root directory of this source tree).
9
+ # #############################################################################
10
+
11
+ option('enable_multithread', type: 'boolean', value: true,
12
+ description: 'Enable multi-threading support')
13
+ option('align-test', type: 'boolean', value: true,
14
+ description: 'See LZ4_ALIGN_TEST')
15
+ option('contrib', type: 'boolean', value: false,
16
+ description: 'Enable contrib')
17
+ option('debug-level', type: 'integer', min: 0, max: 7, value: 1,
18
+ description: 'Enable run-time debug. See lib/lz4hc.c')
19
+ option('disable-memory-allocation', type: 'boolean', value: false,
20
+ description: 'See LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION. Static builds only')
21
+ option('distance-max', type: 'integer', min: 0, max: 65535, value: 65535,
22
+ description: 'See LZ4_DISTANCE_MAX')
23
+ option('endianness-independent-output', type: 'boolean', value: false,
24
+ description: 'See LZ4_STATIC_LINKING_ONLY_ENDIANNESS_INDEPENDENT_OUTPUT. Static builds only')
25
+ option('examples', type: 'boolean', value: false,
26
+ description: 'Enable examples')
27
+ option('fast-dec-loop', type: 'feature', value: 'auto',
28
+ description: 'See LZ4_FAST_DEC_LOOP')
29
+ option('force-sw-bitcount', type: 'boolean', value: false,
30
+ description: 'See LZ4_FORCE_SW_BITCOUNT')
31
+ option('freestanding', type: 'boolean', value: false,
32
+ description: 'See LZ4_FREESTANDING')
33
+ option('memory-usage', type: 'integer', min: 0, max: 20, value: 0,
34
+ description: 'See LZ4_MEMORY_USAGE. 0 means use the LZ4 default')
35
+ option('ossfuzz', type: 'boolean', value: true,
36
+ description: 'Enable ossfuzz')
37
+ option('programs', type: 'boolean', value: false,
38
+ description: 'Enable programs')
39
+ option('tests', type: 'boolean', value: false,
40
+ description: 'Enable tests')
41
+ option('unstable', type: 'boolean', value: false,
42
+ description: 'Expose unstable interfaces')
43
+ option('user-memory-functions', type: 'boolean', value: false,
44
+ description: 'See LZ4_USER_MEMORY_FUNCTIONS')
@@ -0,0 +1,5 @@
1
+ These scripts will generate Visual Studio Solutions for a selected set of supported versions of MS Visual.
2
+
3
+ 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.
4
+
5
+ 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`.
@@ -0,0 +1,55 @@
1
+ :: Requires 1 parameter == GENERATOR
2
+ @echo off
3
+ setlocal
4
+
5
+ :: Set path
6
+ set "BUILD_BASE_DIR=%~dp0" :: Use the directory where the script is located
7
+ set "CMAKELIST_DIR=..\..\cmake"
8
+
9
+ if "%~1"=="" (
10
+ echo No generator specified as first parameter
11
+ exit /b 1
12
+ )
13
+ set "GENERATOR=%~1"
14
+
15
+ :: Check if a user-defined CMAKE_PATH is set and prioritize it
16
+ if defined CMAKE_PATH (
17
+ set "CMAKE_EXECUTABLE=%CMAKE_PATH%\cmake.exe"
18
+ echo Using user-defined cmake at %CMAKE_PATH%
19
+ ) else (
20
+ :: Attempt to find cmake in the system PATH
21
+ where cmake >nul 2>&1
22
+ if %ERRORLEVEL% neq 0 (
23
+ :: Use the default standard cmake installation directory if not found in PATH
24
+ set "CMAKE_PATH=C:\Program Files\CMake\bin"
25
+ echo CMake not in system PATH => using default CMAKE_PATH=%CMAKE_PATH%
26
+ set "CMAKE_EXECUTABLE=%CMAKE_PATH%\cmake.exe"
27
+ ) else (
28
+ set "CMAKE_EXECUTABLE=cmake"
29
+ echo CMake found in system PATH.
30
+ )
31
+ )
32
+
33
+ :: Set the build directory to a subdirectory named after the generator
34
+ set "BUILD_DIR=%BUILD_BASE_DIR%\%GENERATOR%"
35
+
36
+ :: Create the build directory if it doesn't exist
37
+ if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%"
38
+
39
+ :: Run CMake to configure the project and generate the solution
40
+ pushd "%BUILD_DIR%"
41
+ "%CMAKE_EXECUTABLE%" -G "%GENERATOR%" "%CMAKELIST_DIR%"
42
+ if %ERRORLEVEL% neq 0 goto :error
43
+
44
+ :: If successful, end script
45
+ echo Build configuration successful for %GENERATOR%.
46
+ goto :end
47
+
48
+ :error
49
+ echo Failed to configure build for %GENERATOR%.
50
+ exit /b 1
51
+
52
+ :end
53
+ popd
54
+ endlocal
55
+ @echo on
@@ -0,0 +1,3 @@
1
+ @echo off
2
+ :: Call the central script with the specific generator for VS2015
3
+ call generate_solution.cmd "Visual Studio 14 2015"
@@ -0,0 +1,3 @@
1
+ @echo off
2
+ :: Call the central script with the specific generator for VS2017
3
+ call generate_solution.cmd "Visual Studio 15 2017"
@@ -0,0 +1,3 @@
1
+ @echo off
2
+ :: Call the central script with the specific generator for VS2019
3
+ call generate_solution.cmd "Visual Studio 16 2019"
@@ -0,0 +1,3 @@
1
+ @echo off
2
+ :: Call the central script with the specific generator for VS2022
3
+ call generate_solution.cmd "Visual Studio 17 2022"
@@ -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,