mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 10:30:15 +02:00
Store pre-compiled binary dependencies in 'vendor' directory.
This frees up 'lib' directory to allow for more modular JavaScript.
This commit is contained in:
parent
928edfd1dd
commit
552cfd6ff1
3
.gitignore
vendored
3
.gitignore
vendored
@ -8,8 +8,7 @@ test/saliency/report.json
|
|||||||
test/saliency/Image*
|
test/saliency/Image*
|
||||||
test/saliency/[Uu]serData*
|
test/saliency/[Uu]serData*
|
||||||
!test/saliency/userData.js
|
!test/saliency/userData.js
|
||||||
lib
|
vendor
|
||||||
include
|
|
||||||
packaging/libvips*
|
packaging/libvips*
|
||||||
packaging/*.log
|
packaging/*.log
|
||||||
!packaging/build
|
!packaging/build
|
||||||
|
@ -10,8 +10,7 @@ test
|
|||||||
appveyor.yml
|
appveyor.yml
|
||||||
circle.yml
|
circle.yml
|
||||||
mkdocs.yml
|
mkdocs.yml
|
||||||
lib
|
vendor
|
||||||
include
|
|
||||||
packaging
|
packaging
|
||||||
preinstall.sh
|
preinstall.sh
|
||||||
.nyc_output
|
.nyc_output
|
||||||
|
176
binding.gyp
176
binding.gyp
@ -18,14 +18,14 @@
|
|||||||
'src/libvips/cplusplus/VImage.cpp'
|
'src/libvips/cplusplus/VImage.cpp'
|
||||||
],
|
],
|
||||||
'include_dirs': [
|
'include_dirs': [
|
||||||
'include',
|
'vendor/include',
|
||||||
'include/glib-2.0',
|
'vendor/include/glib-2.0',
|
||||||
'lib/glib-2.0/include'
|
'vendor/lib/glib-2.0/include'
|
||||||
],
|
],
|
||||||
'libraries': [
|
'libraries': [
|
||||||
'../lib/libvips.lib',
|
'../vendor/lib/libvips.lib',
|
||||||
'../lib/libglib-2.0.lib',
|
'../vendor/lib/libglib-2.0.lib',
|
||||||
'../lib/libgobject-2.0.lib'
|
'../vendor/lib/libgobject-2.0.lib'
|
||||||
],
|
],
|
||||||
'configurations': {
|
'configurations': {
|
||||||
'Release': {
|
'Release': {
|
||||||
@ -114,9 +114,9 @@
|
|||||||
}, {
|
}, {
|
||||||
# Attempt to download pre-built libvips and install locally within node_modules
|
# Attempt to download pre-built libvips and install locally within node_modules
|
||||||
'include_dirs': [
|
'include_dirs': [
|
||||||
'include',
|
'vendor/include',
|
||||||
'include/glib-2.0',
|
'vendor/include/glib-2.0',
|
||||||
'lib/glib-2.0/include'
|
'vendor/lib/glib-2.0/include'
|
||||||
],
|
],
|
||||||
'conditions': [
|
'conditions': [
|
||||||
['OS == "win"', {
|
['OS == "win"', {
|
||||||
@ -124,9 +124,9 @@
|
|||||||
'_ALLOW_KEYWORD_MACROS'
|
'_ALLOW_KEYWORD_MACROS'
|
||||||
],
|
],
|
||||||
'libraries': [
|
'libraries': [
|
||||||
'../lib/libvips.lib',
|
'../vendor/lib/libvips.lib',
|
||||||
'../lib/libglib-2.0.lib',
|
'../vendor/lib/libglib-2.0.lib',
|
||||||
'../lib/libgobject-2.0.lib'
|
'../vendor/lib/libgobject-2.0.lib'
|
||||||
]
|
]
|
||||||
}],
|
}],
|
||||||
['OS == "mac"', {
|
['OS == "mac"', {
|
||||||
@ -134,12 +134,12 @@
|
|||||||
'download_vips': '<!(node -e "require(\'./binding\').download_vips()")'
|
'download_vips': '<!(node -e "require(\'./binding\').download_vips()")'
|
||||||
},
|
},
|
||||||
'libraries': [
|
'libraries': [
|
||||||
'../lib/libvips-cpp.42.dylib',
|
'../vendor/lib/libvips-cpp.42.dylib',
|
||||||
'../lib/libvips.42.dylib',
|
'../vendor/lib/libvips.42.dylib',
|
||||||
'../lib/libglib-2.0.0.dylib',
|
'../vendor/lib/libglib-2.0.0.dylib',
|
||||||
'../lib/libgobject-2.0.0.dylib',
|
'../vendor/lib/libgobject-2.0.0.dylib',
|
||||||
# Ensure runtime linking is relative to sharp.node
|
# Ensure runtime linking is relative to sharp.node
|
||||||
'-rpath \'@loader_path/../../lib\''
|
'-rpath \'@loader_path/../../vendor/lib\''
|
||||||
]
|
]
|
||||||
}],
|
}],
|
||||||
['OS == "linux"', {
|
['OS == "linux"', {
|
||||||
@ -150,39 +150,39 @@
|
|||||||
'_GLIBCXX_USE_CXX11_ABI=0'
|
'_GLIBCXX_USE_CXX11_ABI=0'
|
||||||
],
|
],
|
||||||
'libraries': [
|
'libraries': [
|
||||||
'../lib/libvips-cpp.so',
|
'../vendor/lib/libvips-cpp.so',
|
||||||
'../lib/libvips.so',
|
'../vendor/lib/libvips.so',
|
||||||
'../lib/libglib-2.0.so',
|
'../vendor/lib/libglib-2.0.so',
|
||||||
'../lib/libgobject-2.0.so',
|
'../vendor/lib/libgobject-2.0.so',
|
||||||
# Dependencies of dependencies, included for openSUSE support
|
# Dependencies of dependencies, included for openSUSE support
|
||||||
'../lib/libcairo.so',
|
'../vendor/lib/libcairo.so',
|
||||||
'../lib/libcroco-0.6.so',
|
'../vendor/lib/libcroco-0.6.so',
|
||||||
'../lib/libexif.so',
|
'../vendor/lib/libexif.so',
|
||||||
'../lib/libffi.so',
|
'../vendor/lib/libffi.so',
|
||||||
'../lib/libfontconfig.so',
|
'../vendor/lib/libfontconfig.so',
|
||||||
'../lib/libfreetype.so',
|
'../vendor/lib/libfreetype.so',
|
||||||
'../lib/libgdk_pixbuf-2.0.so',
|
'../vendor/lib/libgdk_pixbuf-2.0.so',
|
||||||
'../lib/libgif.so',
|
'../vendor/lib/libgif.so',
|
||||||
'../lib/libgio-2.0.so',
|
'../vendor/lib/libgio-2.0.so',
|
||||||
'../lib/libgmodule-2.0.so',
|
'../vendor/lib/libgmodule-2.0.so',
|
||||||
'../lib/libgsf-1.so',
|
'../vendor/lib/libgsf-1.so',
|
||||||
'../lib/libgthread-2.0.so',
|
'../vendor/lib/libgthread-2.0.so',
|
||||||
'../lib/libharfbuzz.so',
|
'../vendor/lib/libharfbuzz.so',
|
||||||
'../lib/libjpeg.so',
|
'../vendor/lib/libjpeg.so',
|
||||||
'../lib/liblcms2.so',
|
'../vendor/lib/liblcms2.so',
|
||||||
'../lib/liborc-0.4.so',
|
'../vendor/lib/liborc-0.4.so',
|
||||||
'../lib/libpango-1.0.so',
|
'../vendor/lib/libpango-1.0.so',
|
||||||
'../lib/libpangocairo-1.0.so',
|
'../vendor/lib/libpangocairo-1.0.so',
|
||||||
'../lib/libpangoft2-1.0.so',
|
'../vendor/lib/libpangoft2-1.0.so',
|
||||||
'../lib/libpixman-1.so',
|
'../vendor/lib/libpixman-1.so',
|
||||||
'../lib/libpng.so',
|
'../vendor/lib/libpng.so',
|
||||||
'../lib/librsvg-2.so',
|
'../vendor/lib/librsvg-2.so',
|
||||||
'../lib/libtiff.so',
|
'../vendor/lib/libtiff.so',
|
||||||
'../lib/libwebp.so',
|
'../vendor/lib/libwebp.so',
|
||||||
'../lib/libxml2.so',
|
'../vendor/lib/libxml2.so',
|
||||||
'../lib/libz.so',
|
'../vendor/lib/libz.so',
|
||||||
# Ensure runtime linking is relative to sharp.node
|
# Ensure runtime linking is relative to sharp.node
|
||||||
'-Wl,--disable-new-dtags -Wl,-rpath=\'$${ORIGIN}/../../lib\''
|
'-Wl,--disable-new-dtags -Wl,-rpath=\'$${ORIGIN}/../../vendor/lib\''
|
||||||
]
|
]
|
||||||
}]
|
}]
|
||||||
]
|
]
|
||||||
@ -230,46 +230,46 @@
|
|||||||
'copies': [{
|
'copies': [{
|
||||||
'destination': 'build/Release',
|
'destination': 'build/Release',
|
||||||
'files': [
|
'files': [
|
||||||
'lib/GNU.Gettext.dll',
|
'vendor/lib/GNU.Gettext.dll',
|
||||||
'lib/libasprintf-0.dll',
|
'vendor/lib/libasprintf-0.dll',
|
||||||
'lib/libcairo-2.dll',
|
'vendor/lib/libcairo-2.dll',
|
||||||
'lib/libcairo-gobject-2.dll',
|
'vendor/lib/libcairo-gobject-2.dll',
|
||||||
'lib/libcairo-script-interpreter-2.dll',
|
'vendor/lib/libcairo-script-interpreter-2.dll',
|
||||||
'lib/libcharset-1.dll',
|
'vendor/lib/libcharset-1.dll',
|
||||||
'lib/libcroco-0.6-3.dll',
|
'vendor/lib/libcroco-0.6-3.dll',
|
||||||
'lib/libexif-12.dll',
|
'vendor/lib/libexif-12.dll',
|
||||||
'lib/libexpat-1.dll',
|
'vendor/lib/libexpat-1.dll',
|
||||||
'lib/libffi-6.dll',
|
'vendor/lib/libffi-6.dll',
|
||||||
'lib/libfftw3-3.dll',
|
'vendor/lib/libfftw3-3.dll',
|
||||||
'lib/libfontconfig-1.dll',
|
'vendor/lib/libfontconfig-1.dll',
|
||||||
'lib/libfreetype-6.dll',
|
'vendor/lib/libfreetype-6.dll',
|
||||||
'lib/libgcc_s_seh-1.dll',
|
'vendor/lib/libgcc_s_seh-1.dll',
|
||||||
'lib/libgdk_pixbuf-2.0-0.dll',
|
'vendor/lib/libgdk_pixbuf-2.0-0.dll',
|
||||||
'lib/libgif-7.dll',
|
'vendor/lib/libgif-7.dll',
|
||||||
'lib/libgio-2.0-0.dll',
|
'vendor/lib/libgio-2.0-0.dll',
|
||||||
'lib/libglib-2.0-0.dll',
|
'vendor/lib/libglib-2.0-0.dll',
|
||||||
'lib/libgmodule-2.0-0.dll',
|
'vendor/lib/libgmodule-2.0-0.dll',
|
||||||
'lib/libgobject-2.0-0.dll',
|
'vendor/lib/libgobject-2.0-0.dll',
|
||||||
'lib/libgsf-1-114.dll',
|
'vendor/lib/libgsf-1-114.dll',
|
||||||
'lib/libgthread-2.0-0.dll',
|
'vendor/lib/libgthread-2.0-0.dll',
|
||||||
'lib/libiconv-2.dll',
|
'vendor/lib/libiconv-2.dll',
|
||||||
'lib/libintl-8.dll',
|
'vendor/lib/libintl-8.dll',
|
||||||
'lib/libjpeg-62.dll',
|
'vendor/lib/libjpeg-62.dll',
|
||||||
'lib/liblcms2-2.dll',
|
'vendor/lib/liblcms2-2.dll',
|
||||||
'lib/libpango-1.0-0.dll',
|
'vendor/lib/libpango-1.0-0.dll',
|
||||||
'lib/libpangocairo-1.0-0.dll',
|
'vendor/lib/libpangocairo-1.0-0.dll',
|
||||||
'lib/libpangowin32-1.0-0.dll',
|
'vendor/lib/libpangowin32-1.0-0.dll',
|
||||||
'lib/libpixman-1-0.dll',
|
'vendor/lib/libpixman-1-0.dll',
|
||||||
'lib/libpng16-16.dll',
|
'vendor/lib/libpng16-16.dll',
|
||||||
'lib/libquadmath-0.dll',
|
'vendor/lib/libquadmath-0.dll',
|
||||||
'lib/librsvg-2-2.dll',
|
'vendor/lib/librsvg-2-2.dll',
|
||||||
'lib/libssp-0.dll',
|
'vendor/lib/libssp-0.dll',
|
||||||
'lib/libstdc++-6.dll',
|
'vendor/lib/libstdc++-6.dll',
|
||||||
'lib/libtiff-5.dll',
|
'vendor/lib/libtiff-5.dll',
|
||||||
'lib/libvips-42.dll',
|
'vendor/lib/libvips-42.dll',
|
||||||
'lib/libwebp-6.dll',
|
'vendor/lib/libwebp-6.dll',
|
||||||
'lib/libxml2-2.dll',
|
'vendor/lib/libxml2-2.dll',
|
||||||
'lib/zlib1.dll'
|
'vendor/lib/zlib1.dll'
|
||||||
]
|
]
|
||||||
}]
|
}]
|
||||||
}]
|
}]
|
||||||
|
@ -29,7 +29,7 @@ const isFile = function (file) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const unpack = function (tarPath, done) {
|
const unpack = function (tarPath, done) {
|
||||||
const extractor = tar.Extract({ path: __dirname });
|
const extractor = tar.Extract({ path: path.join(__dirname, 'vendor') });
|
||||||
if (done) {
|
if (done) {
|
||||||
extractor.on('end', done);
|
extractor.on('end', done);
|
||||||
}
|
}
|
||||||
@ -64,7 +64,7 @@ const error = function (msg) {
|
|||||||
|
|
||||||
module.exports.download_vips = function () {
|
module.exports.download_vips = function () {
|
||||||
// Has vips been installed locally?
|
// Has vips been installed locally?
|
||||||
const vipsHeaderPath = path.join(__dirname, 'include', 'vips', 'vips.h');
|
const vipsHeaderPath = path.join(__dirname, 'vendor', 'include', 'vips', 'vips.h');
|
||||||
if (!isFile(vipsHeaderPath)) {
|
if (!isFile(vipsHeaderPath)) {
|
||||||
// Ensure Intel 64-bit or ARM
|
// Ensure Intel 64-bit or ARM
|
||||||
if (arch === 'ia32') {
|
if (arch === 'ia32') {
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
"Matthias Thoemmes <thoemmes@gmail.com>"
|
"Matthias Thoemmes <thoemmes@gmail.com>"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "rm -rf node_modules/ build/ include/ lib/ coverage/ test/fixtures/output.*",
|
"clean": "rm -rf node_modules/ build/ vendor/ coverage/ test/fixtures/output.*",
|
||||||
"test": "semistandard && cross-env VIPS_WARNING=0 nyc --reporter=lcov --branches=96 mocha --slow=5000 --timeout=60000 ./test/unit/*.js",
|
"test": "semistandard && cross-env VIPS_WARNING=0 nyc --reporter=lcov --branches=96 mocha --slow=5000 --timeout=60000 ./test/unit/*.js",
|
||||||
"test-leak": "./test/leak/leak.sh",
|
"test-leak": "./test/leak/leak.sh",
|
||||||
"test-packaging": "./packaging/test-linux-x64.sh"
|
"test-packaging": "./packaging/test-linux-x64.sh"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user