Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 14 additions & 4 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ jobs:
brew install meson llvm
build: |
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
export cc=clang
export cxx=clang++
export CC=clang
export CXX=clang++
export CMAKE_BUILD_PARALLEL_LEVEL=2
clang --version
yarn workspace @napi-rs/image build --target x86_64-apple-darwin --features with_simd
- host: windows-latest
Expand Down Expand Up @@ -89,9 +90,16 @@ jobs:
- host: macos-latest
target: aarch64-apple-darwin
setup: |
brew install meson
brew install meson llvm
build: |
MACOSX_DEPLOYMENT_TARGET=11.0 yarn workspace @napi-rs/image build --target aarch64-apple-darwin --features with_simd
export PATH="/usr/local/opt/llvm/bin:$PATH"
export MACOSX_DEPLOYMENT_TARGET='11.0'
export CMAKE_BUILD_PARALLEL_LEVEL=2
export CC=clang
export CXX=clang++
export CARGO_TARGET_AARCH64_APPLE_DARWIN_LINKER="clang"
clang --version
yarn workspace @napi-rs/image build --target aarch64-apple-darwin --features with_simd -- -vvv
- host: ubuntu-latest
target: aarch64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
Expand All @@ -115,6 +123,7 @@ jobs:
build: |
sudo apt update
sudo apt install meson -y
export LDFLAGS="--target=aarch64-linux-android24"
yarn workspace @napi-rs/image build --target aarch64-linux-android --features with_simd
- host: ubuntu-latest
target: aarch64-unknown-linux-musl
Expand All @@ -134,6 +143,7 @@ jobs:
tar -xvf wasi-sdk-21.0-macos.tar.gz
build: |
export WASI_SDK_PATH="$(pwd)/wasi-sdk-21.0"
export CMAKE_BUILD_PARALLEL_LEVEL=2
yarn workspace @napi-rs/image build --target wasm32-wasi-preview1-threads

name: stable - ${{ matrix.settings.target }} - node@20
Expand Down
4 changes: 4 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
members = ["./packages/binding"]
resolver = "2"

[patch.crates-io]
libdeflater = { git = "https://github.com/adamkewley/libdeflater", tag = "1.19.0" }
libdeflate-sys = { git = "https://github.com/adamkewley/libdeflater", tag = "1.19.0" }

[profile.release]
lto = 'fat'
codegen-units = 1
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"website"
],
"devDependencies": {
"@napi-rs/cli": "^3.0.0-alpha.40",
"@napi-rs/cli": "^3.0.0-alpha.41",
"@taplo/cli": "^0.7.0",
"@types/node": "^20.11.16",
"@types/sharp": "^0.31.1",
Expand Down
49 changes: 32 additions & 17 deletions packages/binding/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ switch (platform) {
}
break
default:
throw new Error(`Unsupported architecture on Android ${arch}`)
loadError = new Error(`Unsupported architecture on Android ${arch}`)
}
break
case 'win32':
Expand Down Expand Up @@ -136,7 +136,7 @@ switch (platform) {
}
break
default:
throw new Error(`Unsupported architecture on Windows: ${arch}`)
loadError = new Error(`Unsupported architecture on Windows: ${arch}`)
}
break
case 'darwin':
Expand Down Expand Up @@ -177,22 +177,37 @@ switch (platform) {
}
break
default:
throw new Error(`Unsupported architecture on macOS: ${arch}`)
loadError = new Error(`Unsupported architecture on macOS: ${arch}`)
}
break
case 'freebsd':
if (arch !== 'x64') {
throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
}
localFileExisted = existsSync(join(__dirname, 'image.freebsd-x64.node'))
try {
if (localFileExisted) {
nativeBinding = require('./image.freebsd-x64.node')
} else {
nativeBinding = require('@napi-rs/image-freebsd-x64')
}
} catch (e) {
loadError = e
switch (arch) {
case 'x64':
localFileExisted = existsSync(join(__dirname, 'image.freebsd-x64.node'))
try {
if (localFileExisted) {
nativeBinding = require('./image.freebsd-x64.node')
} else {
nativeBinding = require('@napi-rs/image-freebsd-x64')
}
} catch (e) {
loadError = e
}
break
case 'arm64':
localFileExisted = existsSync(join(__dirname, 'image.freebsd-arm64.node'))
try {
if (localFileExisted) {
nativeBinding = require('./image.freebsd-arm64.node')
} else {
nativeBinding = require('@napi-rs/image-freebsd-arm64')
}
} catch (e) {
loadError = e
}
break
default:
loadError = new Error(`Unsupported architecture on FreeBSD: ${arch}`)
}
break
case 'linux':
Expand Down Expand Up @@ -313,11 +328,11 @@ switch (platform) {
}
break
default:
throw new Error(`Unsupported architecture on Linux: ${arch}`)
loadError = new Error(`Unsupported architecture on Linux: ${arch}`)
}
break
default:
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
loadError = new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
}

if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
Expand Down
2 changes: 1 addition & 1 deletion packages/binding/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
},
"repository": "git@github.com:Brooooooklyn/Image.git",
"devDependencies": {
"@napi-rs/cli": "^3.0.0-alpha.40",
"@napi-rs/cli": "^3.0.0-alpha.41",
"@napi-rs/wasm-runtime": "^0.1.1"
}
}
12 changes: 6 additions & 6 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -540,9 +540,9 @@ __metadata:
languageName: node
linkType: hard

"@napi-rs/cli@npm:^3.0.0-alpha.40":
version: 3.0.0-alpha.40
resolution: "@napi-rs/cli@npm:3.0.0-alpha.40"
"@napi-rs/cli@npm:^3.0.0-alpha.41":
version: 3.0.0-alpha.41
resolution: "@napi-rs/cli@npm:3.0.0-alpha.41"
dependencies:
"@napi-rs/cross-toolchain": "npm:^0.0.14"
"@octokit/rest": "npm:^20.0.2"
Expand Down Expand Up @@ -570,7 +570,7 @@ __metadata:
bin:
napi: dist/cli.js
napi-raw: cli.mjs
checksum: 10c0/0eaa113258b7429794253c7f27866944018dfe05abc85681f6db969101b75acb583189ce4523d0e1863e735648af317a646c3f3914895a0ae951879de135e135
checksum: 10c0/49e0b1536944e272252f05dcb2fcc85c8e25daa2883d7515ce622474787de2c71252fb8465bf24eb19c1cb4bde9c366b49ebb5a0309fcf1f416946cb1c1a0979
languageName: node
linkType: hard

Expand Down Expand Up @@ -615,7 +615,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@napi-rs/image@workspace:packages/binding"
dependencies:
"@napi-rs/cli": "npm:^3.0.0-alpha.40"
"@napi-rs/cli": "npm:^3.0.0-alpha.41"
"@napi-rs/wasm-runtime": "npm:^0.1.1"
languageName: unknown
linkType: soft
Expand Down Expand Up @@ -5543,7 +5543,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "image@workspace:."
dependencies:
"@napi-rs/cli": "npm:^3.0.0-alpha.40"
"@napi-rs/cli": "npm:^3.0.0-alpha.41"
"@taplo/cli": "npm:^0.7.0"
"@types/node": "npm:^20.11.16"
"@types/sharp": "npm:^0.31.1"
Expand Down