sharp 0.33.5 → 0.35.3

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 (49) hide show
  1. package/README.md +12 -18
  2. package/dist/channel.cjs +177 -0
  3. package/{lib/channel.js → dist/channel.mjs} +11 -8
  4. package/dist/colour.cjs +199 -0
  5. package/{lib/colour.js → dist/colour.mjs} +42 -23
  6. package/dist/composite.cjs +213 -0
  7. package/{lib/composite.js → dist/composite.mjs} +14 -11
  8. package/{lib/constructor.js → dist/constructor.cjs} +102 -43
  9. package/dist/constructor.mjs +511 -0
  10. package/dist/index.cjs +25 -0
  11. package/dist/index.d.cts +1999 -0
  12. package/dist/index.d.mts +2046 -0
  13. package/dist/index.mjs +25 -0
  14. package/dist/input.cjs +814 -0
  15. package/{lib/input.js → dist/input.mjs} +232 -76
  16. package/{lib/is.js → dist/is.cjs} +19 -45
  17. package/dist/is.mjs +143 -0
  18. package/{lib/libvips.js → dist/libvips.cjs} +52 -43
  19. package/dist/libvips.mjs +212 -0
  20. package/dist/operation.cjs +998 -0
  21. package/{lib/operation.js → dist/operation.mjs} +131 -91
  22. package/{lib/output.js → dist/output.cjs} +262 -61
  23. package/dist/output.mjs +1788 -0
  24. package/dist/resize.cjs +617 -0
  25. package/{lib/resize.js → dist/resize.mjs} +65 -35
  26. package/dist/sharp.cjs +174 -0
  27. package/dist/sharp.mjs +174 -0
  28. package/{lib/utility.js → dist/utility.cjs} +30 -25
  29. package/dist/utility.mjs +301 -0
  30. package/install/build.js +38 -0
  31. package/lib/index.d.ts +387 -142
  32. package/package.json +90 -85
  33. package/src/binding.gyp +49 -26
  34. package/src/common.cc +203 -111
  35. package/src/common.h +68 -40
  36. package/src/metadata.cc +106 -22
  37. package/src/metadata.h +15 -5
  38. package/src/operations.cc +62 -21
  39. package/src/operations.h +15 -3
  40. package/src/pipeline.cc +391 -201
  41. package/src/pipeline.h +36 -7
  42. package/src/sharp.cc +11 -8
  43. package/src/stats.cc +16 -13
  44. package/src/stats.h +6 -3
  45. package/src/utilities.cc +35 -15
  46. package/src/utilities.h +5 -2
  47. package/install/check.js +0 -41
  48. package/lib/index.js +0 -16
  49. package/lib/sharp.js +0 -114
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sharp",
3
3
  "description": "High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images",
4
- "version": "0.33.5",
4
+ "version": "0.35.3",
5
5
  "author": "Lovell Fuller <npm@lovell.info>",
6
6
  "homepage": "https://sharp.pixelplumbing.com",
7
7
  "contributors": [
@@ -89,34 +89,55 @@
89
89
  "Lachlan Newman <lachnewman007@gmail.com>",
90
90
  "Dennis Beatty <dennis@dcbeatty.com>",
91
91
  "Ingvar Stepanyan <me@rreverser.com>",
92
- "Don Denton <don@happycollision.com>"
92
+ "Don Denton <don@happycollision.com>",
93
+ "Dmytro Tiapukhin <cool.gegeg@gmail.com>",
94
+ "Florian Lefebvre <contact@florian-lefebvre.dev>"
93
95
  ],
94
96
  "scripts": {
95
- "install": "node install/check",
96
- "clean": "rm -rf src/build/ .nyc_output/ coverage/ test/fixtures/output.*",
97
- "test": "npm run test-lint && npm run test-unit && npm run test-licensing && npm run test-types",
98
- "test-lint": "semistandard && cpplint",
99
- "test-unit": "nyc --reporter=lcov --reporter=text --check-coverage --branches=100 mocha",
100
- "test-licensing": "license-checker --production --summary --onlyAllow=\"Apache-2.0;BSD;ISC;LGPL-3.0-or-later;MIT\"",
97
+ "build": "node install/build.js",
98
+ "build:dist": "node scripts/build.mjs",
99
+ "clean": "rm -rf src/build/ test/fixtures/output.*",
100
+ "test": "npm run lint && npm run test-unit",
101
+ "lint": "npm run lint-cpp && npm run lint-js && npm run lint-types && npm run lint-publish",
102
+ "lint-cpp": "cpplint --quiet src/*.h src/*.cc",
103
+ "lint-js": "biome lint",
104
+ "lint-publish": "publint --strict",
105
+ "lint-types": "tsd --files ./test/types/sharp.test-d.{cts,mts}",
101
106
  "test-leak": "./test/leak/leak.sh",
102
- "test-types": "tsd",
103
- "package-from-local-build": "node npm/from-local-build",
104
- "package-from-github-release": "node npm/from-github-release",
105
- "docs-build": "node docs/build && node docs/search-index/build",
106
- "docs-serve": "cd docs && npx serve",
107
- "docs-publish": "cd docs && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp"
107
+ "test-unit": "node --experimental-test-coverage test/unit.mjs",
108
+ "package-from-local-build": "node npm/from-local-build.js",
109
+ "package-wasm-wrappers": "node npm/wasm-wrappers.js",
110
+ "package-release-notes": "node npm/release-notes.js",
111
+ "docs-build": "node docs/build.mjs",
112
+ "docs-serve": "cd docs && npm start",
113
+ "docs-publish": "cd docs && npm run build && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp"
108
114
  },
109
115
  "type": "commonjs",
110
- "main": "lib/index.js",
111
- "types": "lib/index.d.ts",
112
116
  "files": [
117
+ "dist",
113
118
  "install",
114
- "lib",
119
+ "lib/index.d.ts",
115
120
  "src/*.{cc,h,gyp}"
116
121
  ],
122
+ "main": "./dist/index.cjs",
123
+ "module": "./dist/index.mjs",
124
+ "types": "./dist/index.d.mts",
125
+ "exports": {
126
+ ".": {
127
+ "import": {
128
+ "types": "./dist/index.d.mts",
129
+ "default": "./dist/index.mjs"
130
+ },
131
+ "require": {
132
+ "types": "./dist/index.d.cts",
133
+ "default": "./dist/index.cjs"
134
+ }
135
+ }
136
+ },
137
+ "sideEffects": true,
117
138
  "repository": {
118
139
  "type": "git",
119
- "url": "git://github.com/lovell/sharp.git"
140
+ "url": "git+https://github.com/lovell/sharp.git"
120
141
  },
121
142
  "keywords": [
122
143
  "jpeg",
@@ -137,86 +158,70 @@
137
158
  "vips"
138
159
  ],
139
160
  "dependencies": {
140
- "color": "^4.2.3",
141
- "detect-libc": "^2.0.3",
142
- "semver": "^7.6.3"
161
+ "@img/colour": "^1.1.0",
162
+ "detect-libc": "^2.1.2",
163
+ "semver": "^7.8.5"
143
164
  },
144
165
  "optionalDependencies": {
145
- "@img/sharp-darwin-arm64": "0.33.5",
146
- "@img/sharp-darwin-x64": "0.33.5",
147
- "@img/sharp-libvips-darwin-arm64": "1.0.4",
148
- "@img/sharp-libvips-darwin-x64": "1.0.4",
149
- "@img/sharp-libvips-linux-arm": "1.0.5",
150
- "@img/sharp-libvips-linux-arm64": "1.0.4",
151
- "@img/sharp-libvips-linux-s390x": "1.0.4",
152
- "@img/sharp-libvips-linux-x64": "1.0.4",
153
- "@img/sharp-libvips-linuxmusl-arm64": "1.0.4",
154
- "@img/sharp-libvips-linuxmusl-x64": "1.0.4",
155
- "@img/sharp-linux-arm": "0.33.5",
156
- "@img/sharp-linux-arm64": "0.33.5",
157
- "@img/sharp-linux-s390x": "0.33.5",
158
- "@img/sharp-linux-x64": "0.33.5",
159
- "@img/sharp-linuxmusl-arm64": "0.33.5",
160
- "@img/sharp-linuxmusl-x64": "0.33.5",
161
- "@img/sharp-wasm32": "0.33.5",
162
- "@img/sharp-win32-ia32": "0.33.5",
163
- "@img/sharp-win32-x64": "0.33.5"
166
+ "@img/sharp-darwin-arm64": "0.35.3",
167
+ "@img/sharp-darwin-x64": "0.35.3",
168
+ "@img/sharp-freebsd-wasm32": "0.35.3",
169
+ "@img/sharp-libvips-darwin-arm64": "1.3.2",
170
+ "@img/sharp-libvips-darwin-x64": "1.3.2",
171
+ "@img/sharp-libvips-linux-arm": "1.3.2",
172
+ "@img/sharp-libvips-linux-arm64": "1.3.2",
173
+ "@img/sharp-libvips-linux-ppc64": "1.3.2",
174
+ "@img/sharp-libvips-linux-riscv64": "1.3.2",
175
+ "@img/sharp-libvips-linux-s390x": "1.3.2",
176
+ "@img/sharp-libvips-linux-x64": "1.3.2",
177
+ "@img/sharp-libvips-linuxmusl-arm64": "1.3.2",
178
+ "@img/sharp-libvips-linuxmusl-x64": "1.3.2",
179
+ "@img/sharp-linux-arm": "0.35.3",
180
+ "@img/sharp-linux-arm64": "0.35.3",
181
+ "@img/sharp-linux-ppc64": "0.35.3",
182
+ "@img/sharp-linux-riscv64": "0.35.3",
183
+ "@img/sharp-linux-s390x": "0.35.3",
184
+ "@img/sharp-linux-x64": "0.35.3",
185
+ "@img/sharp-linuxmusl-arm64": "0.35.3",
186
+ "@img/sharp-linuxmusl-x64": "0.35.3",
187
+ "@img/sharp-webcontainers-wasm32": "0.35.3",
188
+ "@img/sharp-win32-arm64": "0.35.3",
189
+ "@img/sharp-win32-ia32": "0.35.3",
190
+ "@img/sharp-win32-x64": "0.35.3"
191
+ },
192
+ "peerDependenciesMeta": {
193
+ "@types/node": {
194
+ "optional": true
195
+ }
164
196
  },
165
197
  "devDependencies": {
166
- "@emnapi/runtime": "^1.2.0",
167
- "@img/sharp-libvips-dev": "1.0.4",
168
- "@img/sharp-libvips-dev-wasm32": "1.0.5",
169
- "@img/sharp-libvips-win32-ia32": "1.0.4",
170
- "@img/sharp-libvips-win32-x64": "1.0.4",
198
+ "@biomejs/biome": "^2.5.1",
199
+ "@cpplint/cli": "^0.1.0",
200
+ "@emnapi/runtime": "^1.11.1",
201
+ "@img/sharp-libvips-dev": "1.3.2",
202
+ "@img/sharp-libvips-dev-wasm32": "1.3.2",
203
+ "@img/sharp-libvips-win32-arm64": "1.3.2",
204
+ "@img/sharp-libvips-win32-ia32": "1.3.2",
205
+ "@img/sharp-libvips-win32-x64": "1.3.2",
171
206
  "@types/node": "*",
172
- "async": "^3.2.5",
173
- "cc": "^3.0.1",
174
- "emnapi": "^1.2.0",
175
- "exif-reader": "^2.0.1",
207
+ "emnapi": "^1.11.1",
208
+ "exif-reader": "^2.0.3",
176
209
  "extract-zip": "^2.0.1",
177
- "icc": "^3.0.0",
178
- "jsdoc-to-markdown": "^8.0.3",
179
- "license-checker": "^25.0.1",
180
- "mocha": "^10.7.3",
181
- "node-addon-api": "^8.1.0",
182
- "nyc": "^17.0.0",
183
- "prebuild": "^13.0.1",
184
- "semistandard": "^17.0.0",
185
- "tar-fs": "^3.0.6",
186
- "tsd": "^0.31.1"
210
+ "icc": "^4.0.0",
211
+ "node-addon-api": "^8.9.0",
212
+ "node-gyp": "^12.4.0",
213
+ "publint": "^0.3.21",
214
+ "tar-fs": "^3.1.3",
215
+ "tsd": "^0.33.0"
187
216
  },
188
217
  "license": "Apache-2.0",
189
218
  "engines": {
190
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
219
+ "node": ">=20.9.0"
191
220
  },
192
221
  "config": {
193
- "libvips": ">=8.15.3"
222
+ "libvips": ">=8.18.3"
194
223
  },
195
224
  "funding": {
196
225
  "url": "https://opencollective.com/libvips"
197
- },
198
- "binary": {
199
- "napi_versions": [
200
- 9
201
- ]
202
- },
203
- "semistandard": {
204
- "env": [
205
- "mocha"
206
- ]
207
- },
208
- "cc": {
209
- "linelength": "120",
210
- "filter": [
211
- "build/include"
212
- ]
213
- },
214
- "nyc": {
215
- "include": [
216
- "lib"
217
- ]
218
- },
219
- "tsd": {
220
- "directory": "test/types/"
221
226
  }
222
227
  }
package/src/binding.gyp CHANGED
@@ -3,23 +3,28 @@
3
3
 
4
4
  {
5
5
  'variables': {
6
- 'vips_version': '<!(node -p "require(\'../lib/libvips\').minimumLibvipsVersion")',
7
- 'platform_and_arch': '<!(node -p "require(\'../lib/libvips\').buildPlatformArch()")',
6
+ 'vips_version': '<!(node -p "require(\'../dist/libvips.cjs\').minimumLibvipsVersion")',
7
+ 'platform_and_arch': '<!(node -p "require(\'../dist/libvips.cjs\').buildPlatformArch()")',
8
+ 'sharp_version': '<!(node -p "require(\'../package.json\').version")',
8
9
  'sharp_libvips_version': '<!(node -p "require(\'../package.json\').optionalDependencies[\'@img/sharp-libvips-<(platform_and_arch)\']")',
9
- 'sharp_libvips_yarn_locator': '<!(node -p "require(\'../lib/libvips\').yarnLocator()")',
10
- 'sharp_libvips_include_dir': '<!(node -p "require(\'../lib/libvips\').buildSharpLibvipsIncludeDir()")',
11
- 'sharp_libvips_cplusplus_dir': '<!(node -p "require(\'../lib/libvips\').buildSharpLibvipsCPlusPlusDir()")',
12
- 'sharp_libvips_lib_dir': '<!(node -p "require(\'../lib/libvips\').buildSharpLibvipsLibDir()")'
10
+ 'sharp_libvips_yarn_locator': '<!(node -p "require(\'../dist/libvips.cjs\').yarnLocator()")',
11
+ 'sharp_libvips_include_dir': '<!(node -p "require(\'../dist/libvips.cjs\').buildSharpLibvipsIncludeDir()")',
12
+ 'sharp_libvips_cplusplus_dir': '<!(node -p "require(\'../dist/libvips.cjs\').buildSharpLibvipsCPlusPlusDir()")',
13
+ 'sharp_libvips_lib_dir': '<!(node -p "require(\'../dist/libvips.cjs\').buildSharpLibvipsLibDir()")'
13
14
  },
14
15
  'targets': [{
15
- 'target_name': 'libvips-cpp',
16
+ 'target_name': 'libvips-cpp-<(vips_version)',
16
17
  'conditions': [
17
18
  ['OS == "win"', {
18
19
  # Build libvips C++ binding for Windows due to MSVC std library ABI changes
19
20
  'type': 'shared_library',
20
21
  'defines': [
21
- 'VIPS_CPLUSPLUS_EXPORTS',
22
- '_ALLOW_KEYWORD_MACROS'
22
+ '_VIPS_PUBLIC=__declspec(dllexport)',
23
+ '_ALLOW_KEYWORD_MACROS',
24
+ '_HAS_EXCEPTIONS=1',
25
+ 'G_DISABLE_ASSERT',
26
+ 'G_DISABLE_CAST_CHECKS',
27
+ 'G_DISABLE_CHECKS'
23
28
  ],
24
29
  'sources': [
25
30
  '<(sharp_libvips_cplusplus_dir)/VConnection.cpp',
@@ -45,6 +50,9 @@
45
50
  'Release': {
46
51
  'msvs_settings': {
47
52
  'VCCLCompilerTool': {
53
+ "AdditionalOptions": [
54
+ "/std:c++17"
55
+ ],
48
56
  'ExceptionHandling': 1,
49
57
  'Optimization': 1,
50
58
  'WholeProgramOptimization': 'true'
@@ -75,21 +83,24 @@
75
83
  }]
76
84
  ]
77
85
  }, {
78
- 'target_name': 'sharp-<(platform_and_arch)',
86
+ 'target_name': 'sharp-<(platform_and_arch)-<(sharp_version)',
79
87
  'defines': [
88
+ 'G_DISABLE_ASSERT',
89
+ 'G_DISABLE_CAST_CHECKS',
90
+ 'G_DISABLE_CHECKS',
80
91
  'NAPI_VERSION=9',
81
92
  'NODE_ADDON_API_DISABLE_DEPRECATED',
82
93
  'NODE_API_SWALLOW_UNTHROWABLE_EXCEPTIONS'
83
94
  ],
84
95
  'dependencies': [
85
96
  '<!(node -p "require(\'node-addon-api\').gyp")',
86
- 'libvips-cpp'
97
+ 'libvips-cpp-<(vips_version)'
87
98
  ],
88
99
  'variables': {
89
100
  'conditions': [
90
101
  ['OS != "win"', {
91
- 'pkg_config_path': '<!(node -p "require(\'../lib/libvips\').pkgConfigPath()")',
92
- 'use_global_libvips': '<!(node -p "Boolean(require(\'../lib/libvips\').useGlobalLibvips()).toString()")'
102
+ 'pkg_config_path': '<!(node -p "require(\'../dist/libvips.cjs\').pkgConfigPath()")',
103
+ 'use_global_libvips': '<!(node -p "Boolean(require(\'../dist/libvips.cjs\').useGlobalLibvips()).toString()")'
93
104
  }, {
94
105
  'pkg_config_path': '',
95
106
  'use_global_libvips': ''
@@ -111,7 +122,7 @@
111
122
  'conditions': [
112
123
  ['use_global_libvips == "true"', {
113
124
  # Use pkg-config for include and lib
114
- 'include_dirs': ['<!@(PKG_CONFIG_PATH="<(pkg_config_path)" pkg-config --cflags-only-I vips-cpp vips glib-2.0 | sed s\/-I//g)'],
125
+ 'include_dirs': ['<!@(PKG_CONFIG_PATH="<(pkg_config_path)" pkg-config --cflags-only-I vips-cpp vips glib-2.0 | sed s/-I//g)'],
115
126
  'libraries': ['<!@(PKG_CONFIG_PATH="<(pkg_config_path)" pkg-config --libs vips-cpp)'],
116
127
  'defines': [
117
128
  'SHARP_USE_GLOBAL_LIBVIPS'
@@ -138,7 +149,8 @@
138
149
  ['OS == "win"', {
139
150
  'defines': [
140
151
  '_ALLOW_KEYWORD_MACROS',
141
- '_FILE_OFFSET_BITS=64'
152
+ '_FILE_OFFSET_BITS=64',
153
+ '_HAS_EXCEPTIONS=1'
142
154
  ],
143
155
  'link_settings': {
144
156
  'libraries': [
@@ -149,14 +161,17 @@
149
161
  ['OS == "mac"', {
150
162
  'link_settings': {
151
163
  'libraries': [
152
- 'libvips-cpp.42.dylib'
164
+ 'libvips-cpp.<(vips_version).dylib'
153
165
  ]
154
166
  },
155
167
  'xcode_settings': {
156
168
  'OTHER_LDFLAGS': [
169
+ '-Wl,-s',
170
+ '-Wl,-dead_strip',
157
171
  # Ensure runtime linking is relative to sharp.node
158
172
  '-Wl,-rpath,\'@loader_path/../../sharp-libvips-<(platform_and_arch)/lib\'',
159
173
  '-Wl,-rpath,\'@loader_path/../../../sharp-libvips-<(platform_and_arch)/<(sharp_libvips_version)/lib\'',
174
+ '-Wl,-rpath,\'@loader_path/../node_modules/@img/sharp-libvips-<(platform_and_arch)/lib\'',
160
175
  '-Wl,-rpath,\'@loader_path/../../node_modules/@img/sharp-libvips-<(platform_and_arch)/lib\'',
161
176
  '-Wl,-rpath,\'@loader_path/../../../node_modules/@img/sharp-libvips-<(platform_and_arch)/lib\'',
162
177
  '-Wl,-rpath,\'@loader_path/../../../../../@img-sharp-libvips-<(platform_and_arch)-npm-<(sharp_libvips_version)-<(sharp_libvips_yarn_locator)/node_modules/@img/sharp-libvips-<(platform_and_arch)/lib\''
@@ -167,14 +182,19 @@
167
182
  'defines': [
168
183
  '_GLIBCXX_USE_CXX11_ABI=1'
169
184
  ],
185
+ 'cflags_cc': [
186
+ '<!(node -p "require(\'detect-libc\').isNonGlibcLinuxSync() ? \'\' : \'-flto=auto\'")'
187
+ ],
170
188
  'link_settings': {
171
189
  'libraries': [
172
- '-l:libvips-cpp.so.42'
190
+ '-l:libvips-cpp.so.<(vips_version)'
173
191
  ],
174
192
  'ldflags': [
193
+ '-lstdc++fs',
175
194
  '-Wl,-s',
176
195
  '-Wl,--disable-new-dtags',
177
196
  '-Wl,-z,nodelete',
197
+ '-Wl,-Bsymbolic-functions',
178
198
  '-Wl,-rpath=\'$$ORIGIN/../../sharp-libvips-<(platform_and_arch)/lib\'',
179
199
  '-Wl,-rpath=\'$$ORIGIN/../../../sharp-libvips-<(platform_and_arch)/<(sharp_libvips_version)/lib\'',
180
200
  '-Wl,-rpath=\'$$ORIGIN/../../node_modules/@img/sharp-libvips-<(platform_and_arch)/lib\'',
@@ -185,18 +205,18 @@
185
205
  }],
186
206
  ['OS == "emscripten"', {
187
207
  'product_extension': 'node.js',
208
+ 'cflags_cc': [
209
+ '-fwasm-exceptions'
210
+ ],
188
211
  'link_settings': {
189
212
  'ldflags': [
190
- '-fexceptions',
213
+ '-fwasm-exceptions',
191
214
  '--pre-js=<!(node -p "require.resolve(\'./emscripten/pre.js\')")',
192
215
  '-Oz',
193
216
  '-sALLOW_MEMORY_GROWTH',
194
217
  '-sENVIRONMENT=node',
195
- '-sEXPORTED_FUNCTIONS=["emnapiInit", "_vips_shutdown", "_uv_library_shutdown"]',
196
218
  '-sNODERAWFS',
197
- '-sTEXTDECODER=0',
198
- '-sWASM_ASYNC_COMPILATION=0',
199
- '-sWASM_BIGINT'
219
+ '-sWASM_ASYNC_COMPILATION=0'
200
220
  ],
201
221
  'libraries': [
202
222
  '<!@(PKG_CONFIG_PATH="<!(node -p "require(\'@img/sharp-libvips-dev-wasm32/lib\')")/pkgconfig" pkg-config --static --libs vips-cpp)'
@@ -207,14 +227,14 @@
207
227
  }]
208
228
  ],
209
229
  'cflags_cc': [
210
- '-std=c++0x',
230
+ '-std=c++17',
211
231
  '-fexceptions',
212
232
  '-Wall',
213
233
  '-Os'
214
234
  ],
215
235
  'xcode_settings': {
216
- 'CLANG_CXX_LANGUAGE_STANDARD': 'c++11',
217
- 'MACOSX_DEPLOYMENT_TARGET': '10.13',
236
+ 'CLANG_CXX_LANGUAGE_STANDARD': 'c++17',
237
+ 'MACOSX_DEPLOYMENT_TARGET': '10.15',
218
238
  'GCC_ENABLE_CPP_EXCEPTIONS': 'YES',
219
239
  'GCC_ENABLE_CPP_RTTI': 'YES',
220
240
  'OTHER_CPLUSPLUSFLAGS': [
@@ -234,6 +254,9 @@
234
254
  ['OS == "win"', {
235
255
  'msvs_settings': {
236
256
  'VCCLCompilerTool': {
257
+ "AdditionalOptions": [
258
+ "/std:c++17"
259
+ ],
237
260
  'ExceptionHandling': 1,
238
261
  'Optimization': 1,
239
262
  'WholeProgramOptimization': 'true'
@@ -264,7 +287,7 @@
264
287
  'target_name': 'copy-dll',
265
288
  'type': 'none',
266
289
  'dependencies': [
267
- 'sharp-<(platform_and_arch)'
290
+ 'sharp-<(platform_and_arch)-<(sharp_version)'
268
291
  ],
269
292
  'conditions': [
270
293
  ['OS == "win"', {