node-liblzma 1.1.9 → 2.0.0

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 (76) hide show
  1. package/.claude/settings.local.json +92 -0
  2. package/.gitattributes +3 -0
  3. package/.release-it.json +6 -0
  4. package/CHANGELOG.md +209 -0
  5. package/History.md +20 -0
  6. package/README.md +750 -30
  7. package/RELEASING.md +131 -0
  8. package/binding.gyp +159 -438
  9. package/biome.json +81 -0
  10. package/coverage/base.css +224 -0
  11. package/coverage/block-navigation.js +87 -0
  12. package/coverage/errors.ts.html +586 -0
  13. package/coverage/favicon.png +0 -0
  14. package/coverage/index.html +146 -0
  15. package/coverage/lcov-report/base.css +224 -0
  16. package/coverage/lcov-report/block-navigation.js +87 -0
  17. package/coverage/lcov-report/errors.ts.html +586 -0
  18. package/coverage/lcov-report/favicon.png +0 -0
  19. package/coverage/lcov-report/index.html +146 -0
  20. package/coverage/lcov-report/lzma.ts.html +2596 -0
  21. package/coverage/lcov-report/pool.ts.html +769 -0
  22. package/coverage/lcov-report/prettify.css +1 -0
  23. package/coverage/lcov-report/prettify.js +2 -0
  24. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  25. package/coverage/lcov-report/sorter.js +210 -0
  26. package/coverage/lcov.info +636 -0
  27. package/coverage/lzma.ts.html +2596 -0
  28. package/coverage/pool.ts.html +769 -0
  29. package/coverage/prettify.css +1 -0
  30. package/coverage/prettify.js +2 -0
  31. package/coverage/sort-arrow-sprite.png +0 -0
  32. package/coverage/sorter.js +210 -0
  33. package/coverage-reports/assets/monocart-coverage-app.js +2 -0
  34. package/coverage-reports/coverage-data.js +1 -0
  35. package/coverage-reports/index.html +48 -0
  36. package/err.log +26 -0
  37. package/index.d.ts +254 -0
  38. package/lib/errors.d.ts +72 -0
  39. package/lib/errors.d.ts.map +1 -0
  40. package/lib/errors.js +153 -0
  41. package/lib/errors.js.map +1 -0
  42. package/lib/lzma.d.ts +245 -0
  43. package/lib/lzma.d.ts.map +1 -0
  44. package/lib/lzma.js +626 -345
  45. package/lib/lzma.js.map +1 -0
  46. package/lib/pool.d.ts +123 -0
  47. package/lib/pool.d.ts.map +1 -0
  48. package/lib/pool.js +188 -0
  49. package/lib/pool.js.map +1 -0
  50. package/lib/types.d.ts +27 -0
  51. package/lib/types.d.ts.map +1 -0
  52. package/lib/types.js +5 -0
  53. package/lib/types.js.map +1 -0
  54. package/package.json +60 -21
  55. package/pnpm-workspace.yaml +3 -0
  56. package/scripts/analyze-coverage.js +132 -0
  57. package/scripts/build_xz_with_cmake.py +390 -0
  58. package/scripts/compare-coverage-tools.js +93 -0
  59. package/scripts/copy_dll.py +51 -0
  60. package/scripts/download_xz_from_github.py +375 -0
  61. package/src/bindings/node-liblzma.cpp +411 -229
  62. package/src/bindings/node-liblzma.hpp +101 -48
  63. package/src/errors.ts +167 -0
  64. package/src/lzma.ts +839 -0
  65. package/src/pool.ts +228 -0
  66. package/src/types.ts +30 -0
  67. package/tsconfig.json +50 -0
  68. package/vitest.config.istanbul.ts +29 -0
  69. package/vitest.config.monocart.ts +44 -0
  70. package/vitest.config.ts +44 -0
  71. package/xz-version.json +8 -0
  72. package/prebuilds/darwin-x64/node.napi.node +0 -0
  73. package/prebuilds/linux-x64/node.napi.node +0 -0
  74. package/prebuilds/win32-x64/node.napi.node +0 -0
  75. package/scripts/download_extract_deps.py +0 -29
  76. package/src/lzma.coffee +0 -344
package/binding.gyp CHANGED
@@ -1,15 +1,14 @@
1
- # Some of this file is built with the help of
2
- # https://n8.io/converting-a-c-library-to-gyp/
3
- # and the work done for grpc (kudos !)
4
- # https://chromium.googlesource.com/external/github.com/grpc/grpc/+/refs/heads/chromium-deps/2016-08-17/binding.gyp
1
+ # Modernized binding.gyp using CMake for XZ compilation across all platforms
2
+ # This replaces the complex manual configuration with CMake-based builds
5
3
  {
6
4
  "variables": {
7
- "use_global_liblzma%": "<!(node -p \"process.env.USE_GLOBAL || (!os.type().startsWith('Win'))\")",
8
- "runtime_link%": "<!(node -p \"process.env.RUNTIME_LINK?.length > 0 ? process.env.RUNTIME_LINK : (!os.type().startsWith('Win') ? 'shared' : 'static')\")",
5
+ "use_global_liblzma%": "<!(node -p \"process.env.USE_GLOBAL || (process.platform === 'linux' || process.platform === 'darwin' ? 'true' : 'false')\")",
6
+ "runtime_link%": "<!(node -p \"(process.env.RUNTIME_LINK && process.env.RUNTIME_LINK.length > 0) ? process.env.RUNTIME_LINK : (process.platform === 'linux' || process.platform === 'darwin' ? 'shared' : 'static')\")",
9
7
  "enable_thread_support%": "<!(node -p \"process.env.ENABLE_THREAD_SUPPORT || 'yes'\")",
10
8
  "xz_vendor_dir": "<(module_root_dir)/deps/xz",
11
9
  "py3": "<!(node -p \"process.env.npm_config_python || 'python3'\")",
12
- "target_dir": "<(module_root_dir)/build"
10
+ "target_dir": "<(module_root_dir)/build",
11
+ "liblzma_install_dir": "<(target_dir)/liblzma"
13
12
  },
14
13
  "target_defaults": {
15
14
  "conditions": [
@@ -99,8 +98,6 @@
99
98
  "defines": [
100
99
  "_WIN32_WINNT=0x0600",
101
100
  "_HAS_EXCEPTIONS=0",
102
- "UNICODE",
103
- "_UNICODE",
104
101
  "NOMINMAX"
105
102
  ]
106
103
  },
@@ -117,406 +114,95 @@
117
114
  },
118
115
  "conditions": [
119
116
  ["use_global_liblzma == 'false'", {
120
- # Compile liblzma from here
121
- "conditions": [
122
- ["OS == 'win'", {
123
- "targets": [{
124
- "target_name": "download_and_extract_deps",
125
- "type": "none",
126
- "hard_dependency": 1,
127
- "actions": [{
128
- "action_name": "download_and_extract_deps",
129
- "inputs": [""],
130
- "outputs": ["<(xz_vendor_dir)/autogen.sh"],
131
- "action": [
132
- "<!(node -p \"process.env.npm_config_python || 'python3'\")",
133
- "<(module_root_dir)/scripts/download_extract_deps.py",
134
- "<(module_root_dir)/deps/xz.tar.xz",
135
- "<(module_root_dir)/deps/"
136
- ]
137
- }]
138
- }]
139
- }],
140
- ["OS == 'win' and runtime_link == 'shared'", {
141
- "targets": [{
142
- "target_name": "lzma",
143
- "product_prefix": "lib",
144
- "type": "shared_library",
145
- "hard_dependency": 1,
146
- "defines": [
147
- "WIN32",
148
- "HAVE_CONFIG_H",
149
- "LIBLZMADLL_EXPORTS",
150
- "DLL_EXPORT"
151
- ],
152
- "include_dirs": [
153
- "<(xz_vendor_dir)/src",
154
- "<(xz_vendor_dir)/windows/vs2019",
155
- "<(xz_vendor_dir)/src/liblzma/common",
156
- "<(xz_vendor_dir)/src/common",
157
- "<(xz_vendor_dir)/src/liblzma/api",
158
- "<(xz_vendor_dir)/src/liblzma/check",
159
- "<(xz_vendor_dir)/src/liblzma/delta",
160
- "<(xz_vendor_dir)/src/liblzma/lz",
161
- "<(xz_vendor_dir)/src/liblzma/lzma",
162
- "<(xz_vendor_dir)/src/liblzma/rangecoder",
163
- "<(xz_vendor_dir)/src/liblzma/simple"
164
- ],
165
- "sources": [
166
- "<(xz_vendor_dir)/src/common/tuklib_cpucores.c",
167
- "<(xz_vendor_dir)/src/common/tuklib_physmem.c",
168
- "<(xz_vendor_dir)/src/liblzma/check/check.c",
169
- "<(xz_vendor_dir)/src/liblzma/check/crc32_fast.c",
170
- "<(xz_vendor_dir)/src/liblzma/check/crc32_table.c",
171
- "<(xz_vendor_dir)/src/liblzma/check/crc64_fast.c",
172
- "<(xz_vendor_dir)/src/liblzma/check/crc64_table.c",
173
- "<(xz_vendor_dir)/src/liblzma/check/sha256.c",
174
- "<(xz_vendor_dir)/src/liblzma/common/alone_decoder.c",
175
- "<(xz_vendor_dir)/src/liblzma/common/alone_encoder.c",
176
- "<(xz_vendor_dir)/src/liblzma/common/auto_decoder.c",
177
- "<(xz_vendor_dir)/src/liblzma/common/block_buffer_decoder.c",
178
- "<(xz_vendor_dir)/src/liblzma/common/block_buffer_encoder.c",
179
- "<(xz_vendor_dir)/src/liblzma/common/block_decoder.c",
180
- "<(xz_vendor_dir)/src/liblzma/common/block_encoder.c",
181
- "<(xz_vendor_dir)/src/liblzma/common/block_header_decoder.c",
182
- "<(xz_vendor_dir)/src/liblzma/common/block_header_encoder.c",
183
- "<(xz_vendor_dir)/src/liblzma/common/block_util.c",
184
- "<(xz_vendor_dir)/src/liblzma/common/common.c",
185
- "<(xz_vendor_dir)/src/liblzma/common/easy_buffer_encoder.c",
186
- "<(xz_vendor_dir)/src/liblzma/common/easy_decoder_memusage.c",
187
- "<(xz_vendor_dir)/src/liblzma/common/easy_encoder.c",
188
- "<(xz_vendor_dir)/src/liblzma/common/easy_encoder_memusage.c",
189
- "<(xz_vendor_dir)/src/liblzma/common/easy_preset.c",
190
- "<(xz_vendor_dir)/src/liblzma/common/filter_buffer_decoder.c",
191
- "<(xz_vendor_dir)/src/liblzma/common/filter_buffer_encoder.c",
192
- "<(xz_vendor_dir)/src/liblzma/common/filter_common.c",
193
- "<(xz_vendor_dir)/src/liblzma/common/filter_decoder.c",
194
- "<(xz_vendor_dir)/src/liblzma/common/filter_encoder.c",
195
- "<(xz_vendor_dir)/src/liblzma/common/filter_flags_decoder.c",
196
- "<(xz_vendor_dir)/src/liblzma/common/filter_flags_encoder.c",
197
- "<(xz_vendor_dir)/src/liblzma/common/hardware_cputhreads.c",
198
- "<(xz_vendor_dir)/src/liblzma/common/hardware_physmem.c",
199
- "<(xz_vendor_dir)/src/liblzma/common/index.c",
200
- "<(xz_vendor_dir)/src/liblzma/common/index_decoder.c",
201
- "<(xz_vendor_dir)/src/liblzma/common/index_encoder.c",
202
- "<(xz_vendor_dir)/src/liblzma/common/index_hash.c",
203
- "<(xz_vendor_dir)/src/liblzma/common/outqueue.c",
204
- "<(xz_vendor_dir)/src/liblzma/common/stream_buffer_decoder.c",
205
- "<(xz_vendor_dir)/src/liblzma/common/stream_buffer_encoder.c",
206
- "<(xz_vendor_dir)/src/liblzma/common/stream_decoder.c",
207
- "<(xz_vendor_dir)/src/liblzma/common/stream_encoder.c",
208
- "<(xz_vendor_dir)/src/liblzma/common/stream_encoder_mt.c",
209
- "<(xz_vendor_dir)/src/liblzma/common/stream_flags_common.c",
210
- "<(xz_vendor_dir)/src/liblzma/common/stream_flags_decoder.c",
211
- "<(xz_vendor_dir)/src/liblzma/common/stream_flags_encoder.c",
212
- "<(xz_vendor_dir)/src/liblzma/common/vli_decoder.c",
213
- "<(xz_vendor_dir)/src/liblzma/common/vli_encoder.c",
214
- "<(xz_vendor_dir)/src/liblzma/common/vli_size.c",
215
- "<(xz_vendor_dir)/src/liblzma/delta/delta_common.c",
216
- "<(xz_vendor_dir)/src/liblzma/delta/delta_decoder.c",
217
- "<(xz_vendor_dir)/src/liblzma/delta/delta_encoder.c",
218
- "<(xz_vendor_dir)/src/liblzma/lzma/fastpos_table.c",
219
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma2_decoder.c",
220
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma2_encoder.c",
221
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_decoder.c",
222
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder.c",
223
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder_optimum_fast.c",
224
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder_optimum_normal.c",
225
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder_presets.c",
226
- "<(xz_vendor_dir)/src/liblzma/lz/lz_decoder.c",
227
- "<(xz_vendor_dir)/src/liblzma/lz/lz_encoder.c",
228
- "<(xz_vendor_dir)/src/liblzma/lz/lz_encoder_mf.c",
229
- "<(xz_vendor_dir)/src/liblzma/rangecoder/price_table.c",
230
- "<(xz_vendor_dir)/src/liblzma/simple/arm.c",
231
- "<(xz_vendor_dir)/src/liblzma/simple/armthumb.c",
232
- "<(xz_vendor_dir)/src/liblzma/simple/ia64.c",
233
- "<(xz_vendor_dir)/src/liblzma/simple/powerpc.c",
234
- "<(xz_vendor_dir)/src/liblzma/simple/simple_coder.c",
235
- "<(xz_vendor_dir)/src/liblzma/simple/simple_decoder.c",
236
- "<(xz_vendor_dir)/src/liblzma/simple/simple_encoder.c",
237
- "<(xz_vendor_dir)/src/liblzma/simple/sparc.c",
238
- "<(xz_vendor_dir)/src/liblzma/simple/x86.c",
239
- "<(xz_vendor_dir)/src/common/mythread.h",
240
- "<(xz_vendor_dir)/src/common/sysdefs.h",
241
- "<(xz_vendor_dir)/src/common/tuklib_common.h",
242
- "<(xz_vendor_dir)/src/common/tuklib_config.h",
243
- "<(xz_vendor_dir)/src/common/tuklib_cpucores.h",
244
- "<(xz_vendor_dir)/src/common/tuklib_integer.h",
245
- "<(xz_vendor_dir)/src/common/tuklib_physmem.h",
246
- "<(xz_vendor_dir)/src/liblzma/api/lzma.h",
247
- "<(xz_vendor_dir)/src/liblzma/api/lzma/base.h",
248
- "<(xz_vendor_dir)/src/liblzma/api/lzma/bcj.h",
249
- "<(xz_vendor_dir)/src/liblzma/api/lzma/block.h",
250
- "<(xz_vendor_dir)/src/liblzma/api/lzma/check.h",
251
- "<(xz_vendor_dir)/src/liblzma/api/lzma/container.h",
252
- "<(xz_vendor_dir)/src/liblzma/api/lzma/delta.h",
253
- "<(xz_vendor_dir)/src/liblzma/api/lzma/filter.h",
254
- "<(xz_vendor_dir)/src/liblzma/api/lzma/hardware.h",
255
- "<(xz_vendor_dir)/src/liblzma/api/lzma/index.h",
256
- "<(xz_vendor_dir)/src/liblzma/api/lzma/index_hash.h",
257
- "<(xz_vendor_dir)/src/liblzma/api/lzma/lzma12.h",
258
- "<(xz_vendor_dir)/src/liblzma/api/lzma/stream_flags.h",
259
- "<(xz_vendor_dir)/src/liblzma/api/lzma/version.h",
260
- "<(xz_vendor_dir)/src/liblzma/api/lzma/vli.h",
261
- "<(xz_vendor_dir)/src/liblzma/check/check.h",
262
- "<(xz_vendor_dir)/src/liblzma/check/crc32_table_be.h",
263
- "<(xz_vendor_dir)/src/liblzma/check/crc32_table_le.h",
264
- "<(xz_vendor_dir)/src/liblzma/check/crc64_table_be.h",
265
- "<(xz_vendor_dir)/src/liblzma/check/crc64_table_le.h",
266
- "<(xz_vendor_dir)/src/liblzma/check/crc_macros.h",
267
- "<(xz_vendor_dir)/src/liblzma/common/alone_decoder.h",
268
- "<(xz_vendor_dir)/src/liblzma/common/block_buffer_encoder.h",
269
- "<(xz_vendor_dir)/src/liblzma/common/block_decoder.h",
270
- "<(xz_vendor_dir)/src/liblzma/common/block_encoder.h",
271
- "<(xz_vendor_dir)/src/liblzma/common/common.h",
272
- "<(xz_vendor_dir)/src/liblzma/common/easy_preset.h",
273
- "<(xz_vendor_dir)/src/liblzma/common/filter_common.h",
274
- "<(xz_vendor_dir)/src/liblzma/common/filter_decoder.h",
275
- "<(xz_vendor_dir)/src/liblzma/common/filter_encoder.h",
276
- "<(xz_vendor_dir)/src/liblzma/common/index.h",
277
- "<(xz_vendor_dir)/src/liblzma/common/index_encoder.h",
278
- "<(xz_vendor_dir)/src/liblzma/common/memcmplen.h",
279
- "<(xz_vendor_dir)/src/liblzma/common/outqueue.h",
280
- "<(xz_vendor_dir)/src/liblzma/common/stream_decoder.h",
281
- "<(xz_vendor_dir)/src/liblzma/common/stream_flags_common.h",
282
- "<(xz_vendor_dir)/src/liblzma/delta/delta_common.h",
283
- "<(xz_vendor_dir)/src/liblzma/delta/delta_decoder.h",
284
- "<(xz_vendor_dir)/src/liblzma/delta/delta_encoder.h",
285
- "<(xz_vendor_dir)/src/liblzma/delta/delta_private.h",
286
- "<(xz_vendor_dir)/src/liblzma/lzma/fastpos.h",
287
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma2_decoder.h",
288
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma2_encoder.h",
289
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_common.h",
290
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_decoder.h",
291
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder.h",
292
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder_private.h",
293
- "<(xz_vendor_dir)/src/liblzma/lz/lz_decoder.h",
294
- "<(xz_vendor_dir)/src/liblzma/lz/lz_encoder.h",
295
- "<(xz_vendor_dir)/src/liblzma/lz/lz_encoder_hash.h",
296
- "<(xz_vendor_dir)/src/liblzma/lz/lz_encoder_hash_table.h",
297
- "<(xz_vendor_dir)/src/liblzma/rangecoder/price.h",
298
- "<(xz_vendor_dir)/src/liblzma/rangecoder/range_common.h",
299
- "<(xz_vendor_dir)/src/liblzma/rangecoder/range_decoder.h",
300
- "<(xz_vendor_dir)/src/liblzma/rangecoder/range_encoder.h",
301
- "<(xz_vendor_dir)/src/liblzma/simple/simple_coder.h",
302
- "<(xz_vendor_dir)/src/liblzma/simple/simple_decoder.h",
303
- "<(xz_vendor_dir)/src/liblzma/simple/simple_encoder.h",
304
- "<(xz_vendor_dir)/src/liblzma/simple/simple_private.h",
305
- "<(xz_vendor_dir)/windows/vs2019/config.h"
117
+ # Compile liblzma using CMake for all platforms
118
+ "targets": [
119
+ {
120
+ "target_name": "download_and_extract_xz",
121
+ "type": "none",
122
+ "hard_dependency": 1,
123
+ "actions": [{
124
+ "action_name": "download_and_extract_xz",
125
+ "inputs": [""],
126
+ "outputs": ["<(xz_vendor_dir)/CMakeLists.txt"],
127
+ "action": [
128
+ "<(py3)",
129
+ "<(module_root_dir)/scripts/download_xz_from_github.py",
130
+ "<(module_root_dir)/deps/xz.tar.gz",
131
+ "<(module_root_dir)/deps/"
306
132
  ]
307
133
  }]
308
- }],
309
- ["OS == 'win' and runtime_link == 'static'", {
310
- "targets": [{
311
- "target_name": "lzma",
312
- "product_prefix": "lib",
313
- "type": "static_library",
314
- "hard_dependency": 1,
315
- "defines": [
316
- "WIN32",
317
- "HAVE_CONFIG_H"
318
- ],
319
- "include_dirs": [
320
- "<(xz_vendor_dir)/src",
321
- "<(xz_vendor_dir)/windows/vs2019",
322
- "<(xz_vendor_dir)/src/liblzma/common",
323
- "<(xz_vendor_dir)/src/common",
324
- "<(xz_vendor_dir)/src/liblzma/api",
325
- "<(xz_vendor_dir)/src/liblzma/check",
326
- "<(xz_vendor_dir)/src/liblzma/delta",
327
- "<(xz_vendor_dir)/src/liblzma/lz",
328
- "<(xz_vendor_dir)/src/liblzma/lzma",
329
- "<(xz_vendor_dir)/src/liblzma/rangecoder",
330
- "<(xz_vendor_dir)/src/liblzma/simple"
134
+ },
135
+ {
136
+ "target_name": "build_liblzma_cmake",
137
+ "type": "none",
138
+ "hard_dependency": 1,
139
+ "dependencies": ["download_and_extract_xz"],
140
+ "actions": [{
141
+ "action_name": "build_liblzma_cmake",
142
+ "inputs": ["<(xz_vendor_dir)/CMakeLists.txt"],
143
+ "conditions": [
144
+ ["OS == 'win'", {
145
+ "conditions": [
146
+ ["runtime_link == 'static'", {
147
+ "outputs": [
148
+ "<(liblzma_install_dir)/lib/liblzma.lib",
149
+ "<(liblzma_install_dir)/include/lzma.h"
150
+ ]
151
+ }, {
152
+ "outputs": [
153
+ "<(liblzma_install_dir)/lib/liblzma.lib",
154
+ "<(liblzma_install_dir)/bin/liblzma.dll",
155
+ "<(liblzma_install_dir)/include/lzma.h"
156
+ ]
157
+ }]
158
+ ]
159
+ }, {
160
+ "outputs": [
161
+ "<(liblzma_install_dir)/lib/liblzma.a",
162
+ "<(liblzma_install_dir)/include/lzma.h"
163
+ ]
164
+ }]
331
165
  ],
332
- "sources": [
333
- "<(xz_vendor_dir)/src/common/tuklib_cpucores.c",
334
- "<(xz_vendor_dir)/src/common/tuklib_physmem.c",
335
- "<(xz_vendor_dir)/src/liblzma/check/check.c",
336
- "<(xz_vendor_dir)/src/liblzma/check/crc32_fast.c",
337
- "<(xz_vendor_dir)/src/liblzma/check/crc32_table.c",
338
- "<(xz_vendor_dir)/src/liblzma/check/crc64_fast.c",
339
- "<(xz_vendor_dir)/src/liblzma/check/crc64_table.c",
340
- "<(xz_vendor_dir)/src/liblzma/check/sha256.c",
341
- "<(xz_vendor_dir)/src/liblzma/common/alone_decoder.c",
342
- "<(xz_vendor_dir)/src/liblzma/common/alone_encoder.c",
343
- "<(xz_vendor_dir)/src/liblzma/common/auto_decoder.c",
344
- "<(xz_vendor_dir)/src/liblzma/common/block_buffer_decoder.c",
345
- "<(xz_vendor_dir)/src/liblzma/common/block_buffer_encoder.c",
346
- "<(xz_vendor_dir)/src/liblzma/common/block_decoder.c",
347
- "<(xz_vendor_dir)/src/liblzma/common/block_encoder.c",
348
- "<(xz_vendor_dir)/src/liblzma/common/block_header_decoder.c",
349
- "<(xz_vendor_dir)/src/liblzma/common/block_header_encoder.c",
350
- "<(xz_vendor_dir)/src/liblzma/common/block_util.c",
351
- "<(xz_vendor_dir)/src/liblzma/common/common.c",
352
- "<(xz_vendor_dir)/src/liblzma/common/easy_buffer_encoder.c",
353
- "<(xz_vendor_dir)/src/liblzma/common/easy_decoder_memusage.c",
354
- "<(xz_vendor_dir)/src/liblzma/common/easy_encoder.c",
355
- "<(xz_vendor_dir)/src/liblzma/common/easy_encoder_memusage.c",
356
- "<(xz_vendor_dir)/src/liblzma/common/easy_preset.c",
357
- "<(xz_vendor_dir)/src/liblzma/common/filter_buffer_decoder.c",
358
- "<(xz_vendor_dir)/src/liblzma/common/filter_buffer_encoder.c",
359
- "<(xz_vendor_dir)/src/liblzma/common/filter_common.c",
360
- "<(xz_vendor_dir)/src/liblzma/common/filter_decoder.c",
361
- "<(xz_vendor_dir)/src/liblzma/common/filter_encoder.c",
362
- "<(xz_vendor_dir)/src/liblzma/common/filter_flags_decoder.c",
363
- "<(xz_vendor_dir)/src/liblzma/common/filter_flags_encoder.c",
364
- "<(xz_vendor_dir)/src/liblzma/common/hardware_cputhreads.c",
365
- "<(xz_vendor_dir)/src/liblzma/common/hardware_physmem.c",
366
- "<(xz_vendor_dir)/src/liblzma/common/index.c",
367
- "<(xz_vendor_dir)/src/liblzma/common/index_decoder.c",
368
- "<(xz_vendor_dir)/src/liblzma/common/index_encoder.c",
369
- "<(xz_vendor_dir)/src/liblzma/common/index_hash.c",
370
- "<(xz_vendor_dir)/src/liblzma/common/outqueue.c",
371
- "<(xz_vendor_dir)/src/liblzma/common/stream_buffer_decoder.c",
372
- "<(xz_vendor_dir)/src/liblzma/common/stream_buffer_encoder.c",
373
- "<(xz_vendor_dir)/src/liblzma/common/stream_decoder.c",
374
- "<(xz_vendor_dir)/src/liblzma/common/stream_encoder.c",
375
- "<(xz_vendor_dir)/src/liblzma/common/stream_encoder_mt.c",
376
- "<(xz_vendor_dir)/src/liblzma/common/stream_flags_common.c",
377
- "<(xz_vendor_dir)/src/liblzma/common/stream_flags_decoder.c",
378
- "<(xz_vendor_dir)/src/liblzma/common/stream_flags_encoder.c",
379
- "<(xz_vendor_dir)/src/liblzma/common/vli_decoder.c",
380
- "<(xz_vendor_dir)/src/liblzma/common/vli_encoder.c",
381
- "<(xz_vendor_dir)/src/liblzma/common/vli_size.c",
382
- "<(xz_vendor_dir)/src/liblzma/delta/delta_common.c",
383
- "<(xz_vendor_dir)/src/liblzma/delta/delta_decoder.c",
384
- "<(xz_vendor_dir)/src/liblzma/delta/delta_encoder.c",
385
- "<(xz_vendor_dir)/src/liblzma/lzma/fastpos_table.c",
386
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma2_decoder.c",
387
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma2_encoder.c",
388
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_decoder.c",
389
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder.c",
390
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder_optimum_fast.c",
391
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder_optimum_normal.c",
392
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder_presets.c",
393
- "<(xz_vendor_dir)/src/liblzma/lz/lz_decoder.c",
394
- "<(xz_vendor_dir)/src/liblzma/lz/lz_encoder.c",
395
- "<(xz_vendor_dir)/src/liblzma/lz/lz_encoder_mf.c",
396
- "<(xz_vendor_dir)/src/liblzma/rangecoder/price_table.c",
397
- "<(xz_vendor_dir)/src/liblzma/simple/arm.c",
398
- "<(xz_vendor_dir)/src/liblzma/simple/armthumb.c",
399
- "<(xz_vendor_dir)/src/liblzma/simple/ia64.c",
400
- "<(xz_vendor_dir)/src/liblzma/simple/powerpc.c",
401
- "<(xz_vendor_dir)/src/liblzma/simple/simple_coder.c",
402
- "<(xz_vendor_dir)/src/liblzma/simple/simple_decoder.c",
403
- "<(xz_vendor_dir)/src/liblzma/simple/simple_encoder.c",
404
- "<(xz_vendor_dir)/src/liblzma/simple/sparc.c",
405
- "<(xz_vendor_dir)/src/liblzma/simple/x86.c",
406
- "<(xz_vendor_dir)/src/common/mythread.h",
407
- "<(xz_vendor_dir)/src/common/sysdefs.h",
408
- "<(xz_vendor_dir)/src/common/tuklib_common.h",
409
- "<(xz_vendor_dir)/src/common/tuklib_config.h",
410
- "<(xz_vendor_dir)/src/common/tuklib_cpucores.h",
411
- "<(xz_vendor_dir)/src/common/tuklib_integer.h",
412
- "<(xz_vendor_dir)/src/common/tuklib_physmem.h",
413
- "<(xz_vendor_dir)/src/liblzma/api/lzma.h",
414
- "<(xz_vendor_dir)/src/liblzma/api/lzma/base.h",
415
- "<(xz_vendor_dir)/src/liblzma/api/lzma/bcj.h",
416
- "<(xz_vendor_dir)/src/liblzma/api/lzma/block.h",
417
- "<(xz_vendor_dir)/src/liblzma/api/lzma/check.h",
418
- "<(xz_vendor_dir)/src/liblzma/api/lzma/container.h",
419
- "<(xz_vendor_dir)/src/liblzma/api/lzma/delta.h",
420
- "<(xz_vendor_dir)/src/liblzma/api/lzma/filter.h",
421
- "<(xz_vendor_dir)/src/liblzma/api/lzma/hardware.h",
422
- "<(xz_vendor_dir)/src/liblzma/api/lzma/index.h",
423
- "<(xz_vendor_dir)/src/liblzma/api/lzma/index_hash.h",
424
- "<(xz_vendor_dir)/src/liblzma/api/lzma/lzma12.h",
425
- "<(xz_vendor_dir)/src/liblzma/api/lzma/stream_flags.h",
426
- "<(xz_vendor_dir)/src/liblzma/api/lzma/version.h",
427
- "<(xz_vendor_dir)/src/liblzma/api/lzma/vli.h",
428
- "<(xz_vendor_dir)/src/liblzma/check/check.h",
429
- "<(xz_vendor_dir)/src/liblzma/check/crc32_table_be.h",
430
- "<(xz_vendor_dir)/src/liblzma/check/crc32_table_le.h",
431
- "<(xz_vendor_dir)/src/liblzma/check/crc64_table_be.h",
432
- "<(xz_vendor_dir)/src/liblzma/check/crc64_table_le.h",
433
- "<(xz_vendor_dir)/src/liblzma/check/crc_macros.h",
434
- "<(xz_vendor_dir)/src/liblzma/common/alone_decoder.h",
435
- "<(xz_vendor_dir)/src/liblzma/common/block_buffer_encoder.h",
436
- "<(xz_vendor_dir)/src/liblzma/common/block_decoder.h",
437
- "<(xz_vendor_dir)/src/liblzma/common/block_encoder.h",
438
- "<(xz_vendor_dir)/src/liblzma/common/common.h",
439
- "<(xz_vendor_dir)/src/liblzma/common/easy_preset.h",
440
- "<(xz_vendor_dir)/src/liblzma/common/filter_common.h",
441
- "<(xz_vendor_dir)/src/liblzma/common/filter_decoder.h",
442
- "<(xz_vendor_dir)/src/liblzma/common/filter_encoder.h",
443
- "<(xz_vendor_dir)/src/liblzma/common/index.h",
444
- "<(xz_vendor_dir)/src/liblzma/common/index_encoder.h",
445
- "<(xz_vendor_dir)/src/liblzma/common/memcmplen.h",
446
- "<(xz_vendor_dir)/src/liblzma/common/outqueue.h",
447
- "<(xz_vendor_dir)/src/liblzma/common/stream_decoder.h",
448
- "<(xz_vendor_dir)/src/liblzma/common/stream_flags_common.h",
449
- "<(xz_vendor_dir)/src/liblzma/delta/delta_common.h",
450
- "<(xz_vendor_dir)/src/liblzma/delta/delta_decoder.h",
451
- "<(xz_vendor_dir)/src/liblzma/delta/delta_encoder.h",
452
- "<(xz_vendor_dir)/src/liblzma/delta/delta_private.h",
453
- "<(xz_vendor_dir)/src/liblzma/lzma/fastpos.h",
454
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma2_decoder.h",
455
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma2_encoder.h",
456
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_common.h",
457
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_decoder.h",
458
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder.h",
459
- "<(xz_vendor_dir)/src/liblzma/lzma/lzma_encoder_private.h",
460
- "<(xz_vendor_dir)/src/liblzma/lz/lz_decoder.h",
461
- "<(xz_vendor_dir)/src/liblzma/lz/lz_encoder.h",
462
- "<(xz_vendor_dir)/src/liblzma/lz/lz_encoder_hash.h",
463
- "<(xz_vendor_dir)/src/liblzma/lz/lz_encoder_hash_table.h",
464
- "<(xz_vendor_dir)/src/liblzma/rangecoder/price.h",
465
- "<(xz_vendor_dir)/src/liblzma/rangecoder/range_common.h",
466
- "<(xz_vendor_dir)/src/liblzma/rangecoder/range_decoder.h",
467
- "<(xz_vendor_dir)/src/liblzma/rangecoder/range_encoder.h",
468
- "<(xz_vendor_dir)/src/liblzma/simple/simple_coder.h",
469
- "<(xz_vendor_dir)/src/liblzma/simple/simple_decoder.h",
470
- "<(xz_vendor_dir)/src/liblzma/simple/simple_encoder.h",
471
- "<(xz_vendor_dir)/src/liblzma/simple/simple_private.h",
472
- "<(xz_vendor_dir)/windows/vs2019/config.h"
166
+ "action": [
167
+ "<(py3)",
168
+ "<(module_root_dir)/scripts/build_xz_with_cmake.py",
169
+ "<(xz_vendor_dir)",
170
+ "<(liblzma_install_dir)"
473
171
  ]
474
172
  }]
475
- }],
476
- ["OS!='win'", {
477
- "targets": [{
478
- "target_name": "download_and_extract_deps",
479
- "type": "none",
480
- "hard_dependency": 1,
481
- "actions": [{
482
- "action_name": "download",
483
- "inputs": [""],
484
- "outputs": ["<(xz_vendor_dir)/autogen.sh"],
485
- "action": [
486
- "<!(node -p \"process.env.npm_config_python || 'python3'\")",
487
- "<(module_root_dir)/scripts/download_extract_deps.py",
488
- "<(module_root_dir)/deps/xz.tar.xz",
489
- "<(module_root_dir)/deps/"
490
- ]
491
- }]
492
- },
493
- {
494
- "target_name": "lzma",
495
- "type": "none",
496
- "hard_dependency": 1,
497
- "actions": [{
498
- "action_name": "build",
499
- # a hack to run ./configure during `node-gyp configure`
500
- "inputs": [""],
501
- "outputs": [""],
502
- "action": [
503
- "sh",
504
- "-c",
505
- "cd <(xz_vendor_dir) && ./configure --enable-static --enable-shared --disable-scripts --disable-lzmainfo \
506
- --disable-lzma-links --disable-lzmadec --disable-xzdec --disable-xz --disable-rpath --enable-threads=<(enable_thread_support) \
507
- --disable-dependency-tracking --prefix=\"<(target_dir)/liblzma\" && make && make install"
508
- ]
173
+ },
174
+ {
175
+ # Copy DLL to build directory for Windows shared builds
176
+ "target_name": "copy_dlls_windows_shared",
177
+ "type": "none",
178
+ "dependencies": ["build_liblzma_cmake"],
179
+ "conditions": [
180
+ ["OS == 'win' and use_global_liblzma == 'false' and runtime_link == 'shared'", {
181
+ "actions": [{
182
+ "action_name": "copy_liblzma_dll",
183
+ "inputs": ["<(liblzma_install_dir)/bin/liblzma.dll"],
184
+ "outputs": ["<(target_dir)/Release/liblzma.dll"],
185
+ "action": [
186
+ "<(py3)",
187
+ "<(module_root_dir)/scripts/copy_dll.py",
188
+ "<(liblzma_install_dir)/bin/liblzma.dll",
189
+ "<(target_dir)/Release"
190
+ ]
191
+ }]
509
192
  }]
510
- }]
511
- }]
193
+ ]
194
+ }
512
195
  ]
513
196
  }]
514
197
  ],
515
198
  "targets": [{
199
+ "target_name": "node_lzma",
516
200
  "include_dirs": ["<!(node -p \"require('node-addon-api').include_dir\")"],
517
201
  "defines": ["NAPI_DISABLE_CPP_EXCEPTIONS"],
202
+ "sources": ["<!@(<(py3) scripts/walk_sources.py src)"],
203
+ "dependencies": ["<!(node -p \"require('node-addon-api').gyp\")"],
518
204
  "cflags": [
519
- "-std=c++2a", # because GCC 9 and earlier do not support -std=c++20
205
+ "-std=c++2a",
520
206
  "-Wall",
521
207
  "-pthread",
522
208
  "-g",
@@ -526,33 +212,45 @@
526
212
  "ldflags": ["-g"],
527
213
  "conditions": [
528
214
  ["OS=='win'", {
215
+ # Windows configuration using CMake-built libraries
529
216
  "conditions": [
530
- ["runtime_link == 'static'", {
531
- "dependencies": ["lzma"],
532
- "msvs_settings": {
533
- "VCLinkerTool": {
534
- "AdditionalOptions": [
535
- "/WHOLEARCHIVE:liblzma<(STATIC_LIB_SUFFIX)",
536
- "/FORCE:MULTIPLE"
537
- ]
538
- }
539
- }
540
- },{
541
- "dependencies": ["lzma"]
217
+ ["enable_thread_support != 'no'", {
218
+ "defines": ["ENABLE_THREAD_SUPPORT"]
219
+ }],
220
+ ["use_global_liblzma == 'false'", {
221
+ "conditions": [
222
+ ["runtime_link == 'shared'", {
223
+ "dependencies": ["build_liblzma_cmake", "copy_dlls_windows_shared"]
224
+ }, {
225
+ "dependencies": ["build_liblzma_cmake"]
226
+ }]
227
+ ],
228
+ "include_dirs": [
229
+ "<(liblzma_install_dir)/include"
230
+ ],
231
+ "conditions": [
232
+ ["runtime_link == 'static'", {
233
+ "libraries": [
234
+ "<(liblzma_install_dir)/lib/liblzma.lib"
235
+ ],
236
+ "defines": ["LZMA_API_STATIC"],
237
+ "msvs_settings": {
238
+ "VCLinkerTool": {
239
+ "AdditionalDependencies": ["kernel32.lib", "msvcrt.lib"]
240
+ }
241
+ }
242
+ }, {
243
+ "libraries": [
244
+ "<(liblzma_install_dir)/lib/liblzma.lib"
245
+ ],
246
+ "msvs_settings": {
247
+ "VCLinkerTool": {
248
+ "AdditionalDependencies": ["kernel32.lib", "msvcrt.lib"]
249
+ }
250
+ }
251
+ }]
252
+ ]
542
253
  }]
543
- ],
544
- "include_dirs": [
545
- "<(xz_vendor_dir)/src",
546
- "<(xz_vendor_dir)/windows/vs2019",
547
- "<(xz_vendor_dir)/src/liblzma/common",
548
- "<(xz_vendor_dir)/src/common",
549
- "<(xz_vendor_dir)/src/liblzma/api",
550
- "<(xz_vendor_dir)/src/liblzma/check",
551
- "<(xz_vendor_dir)/src/liblzma/delta",
552
- "<(xz_vendor_dir)/src/liblzma/lz",
553
- "<(xz_vendor_dir)/src/liblzma/lzma",
554
- "<(xz_vendor_dir)/src/liblzma/rangecoder",
555
- "<(xz_vendor_dir)/src/liblzma/simple"
556
254
  ]
557
255
  }],
558
256
  ["OS!='win'", {
@@ -561,7 +259,7 @@
561
259
  "defines": ["ENABLE_THREAD_SUPPORT"]
562
260
  }],
563
261
  ["use_global_liblzma == 'true'", {
564
- # Use pkg-config for include and lib
262
+ # Use system pkg-config for liblzma
565
263
  "include_dirs": ["<!@(pkg-config --cflags-only-I liblzma | sed s\/-I//g)"],
566
264
  "conditions": [
567
265
  ["runtime_link == \"static\"", {
@@ -584,24 +282,47 @@
584
282
  }]
585
283
  ]
586
284
  },{
587
- "include_dirs": ["<(target_dir)/liblzma/include"],
588
- "library_dirs": ["<(target_dir)/liblzma/lib"],
589
- "libraries": [
590
- "-L<(target_dir)/liblzma/lib -llzma -pthread -lpthread"
591
- ],
592
- "ldflags": [
593
- "-Wl,--whole-archive",
594
- "-l:liblzma.a",
595
- "-Wl,--no-whole-archive"
596
- ],
597
- "defines": ["LZMA_API_STATIC"],
598
- "dependencies": ["lzma"]
285
+ # Use CMake-built liblzma
286
+ "dependencies": ["build_liblzma_cmake"],
287
+ "include_dirs": ["<(liblzma_install_dir)/include"],
288
+ "library_dirs": ["<(liblzma_install_dir)/lib"],
289
+ "conditions": [
290
+ ["runtime_link == 'static'", {
291
+ "libraries": ["<(liblzma_install_dir)/lib/liblzma.a"],
292
+ "ldflags": [
293
+ "-Wl,--whole-archive",
294
+ "<(liblzma_install_dir)/lib/liblzma.a",
295
+ "-Wl,--no-whole-archive",
296
+ "-pthread"
297
+ ],
298
+ "defines": ["LZMA_API_STATIC"]
299
+ }, {
300
+ "conditions": [
301
+ ["OS == 'mac'", {
302
+ "libraries": [
303
+ "-L<(liblzma_install_dir)/lib",
304
+ "-llzma"
305
+ ],
306
+ "xcode_settings": {
307
+ "OTHER_LDFLAGS": [
308
+ "-Wl,-rpath,@loader_path",
309
+ "-Wl,-rpath,@loader_path/../liblzma/lib"
310
+ ]
311
+ },
312
+ "copies": [{
313
+ "destination": "<(PRODUCT_DIR)",
314
+ "files": ["<(liblzma_install_dir)/lib/liblzma.dylib"]
315
+ }]
316
+ }, {
317
+ "libraries": ["<(liblzma_install_dir)/lib/liblzma.so"],
318
+ "ldflags": ["-pthread"]
319
+ }]
320
+ ]
321
+ }]
322
+ ]
599
323
  }]
600
324
  ]
601
325
  }]
602
- ],
603
- "target_name": "node_lzma",
604
- "sources": ["<!@(<(py3) scripts/walk_sources.py src)"],
605
- "dependencies": ["<!(node -p \"require('node-addon-api').gyp\")"]
326
+ ]
606
327
  }]
607
328
  }