Also compile to static lib

This commit is contained in:
Caelan Sayler
2024-11-15 22:09:10 +00:00
committed by Caelan
parent f4e06eb29c
commit e67c60258d
3 changed files with 30 additions and 9 deletions

View File

@@ -30,7 +30,7 @@ jobs:
- name: Update Version - name: Update Version
shell: pwsh shell: pwsh
run: .\set-nbgv-version.ps1 run: .\set-nbgv-version.ps1
- name: Build Rust (x86) - name: Build Rust Binaries
run: cargo +1.75.0-x86_64-pc-windows-msvc build --target i686-pc-windows-msvc --features windows --release -p velopack_bins run: cargo +1.75.0-x86_64-pc-windows-msvc build --target i686-pc-windows-msvc --features windows --release -p velopack_bins
- name: Upload Rust Build Artifacts - name: Upload Rust Build Artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@@ -39,18 +39,29 @@ jobs:
path: | path: |
target\i686-pc-windows-msvc\release\*.exe target\i686-pc-windows-msvc\release\*.exe
target\i686-pc-windows-msvc\release\*.pdb target\i686-pc-windows-msvc\release\*.pdb
- name: Build Rust (x86)
run: cargo +1.75.0-x86_64-pc-windows-msvc build --target i686-pc-windows-msvc --release -p velopack_nodeffi -p velopack_libc
- name: Build Rust (x64) - name: Build Rust (x64)
run: cargo +1.75.0-x86_64-pc-windows-msvc build --target x86_64-pc-windows-msvc --release -p velopack_nodeffi -p velopack_libc run: cargo +1.75.0-x86_64-pc-windows-msvc build --target x86_64-pc-windows-msvc --release -p velopack_nodeffi -p velopack_libc
- name: Build Rust (arm64) - name: Build Rust (arm64)
run: cargo +1.75.0-x86_64-pc-windows-msvc build --target aarch64-pc-windows-msvc --release -p velopack_nodeffi -p velopack_libc run: cargo +1.75.0-x86_64-pc-windows-msvc build --target aarch64-pc-windows-msvc --release -p velopack_nodeffi -p velopack_libc
- name: Collect Artifacts - name: Collect Artifacts
run: | run: |
move target\i686-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_x86_msvc.node
move target\x86_64-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_x64_msvc.node move target\x86_64-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_x64_msvc.node
move target\aarch64-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_arm64_msvc.node move target\aarch64-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_arm64_msvc.node
move target\i686-pc-windows-msvc\release\velopack_libc.dll target\velopack_libc_win_x86_msvc.dll
move target\x86_64-pc-windows-msvc\release\velopack_libc.dll target\velopack_libc_win_x64_msvc.dll move target\x86_64-pc-windows-msvc\release\velopack_libc.dll target\velopack_libc_win_x64_msvc.dll
move target\aarch64-pc-windows-msvc\release\velopack_libc.dll target\velopack_libc_win_arm64_msvc.dll move target\aarch64-pc-windows-msvc\release\velopack_libc.dll target\velopack_libc_win_arm64_msvc.dll
move target\x86_64-pc-windows-msvc\release\velopack_libc.dll.lib target\velopack_libc_win_x64_msvc.lib
move target\aarch64-pc-windows-msvc\release\velopack_libc.dll.lib target\velopack_libc_win_arm64_msvc.lib move target\i686-pc-windows-msvc\release\velopack_libc.dll.lib target\velopack_libc_win_x86_msvc.dll.lib
move target\x86_64-pc-windows-msvc\release\velopack_libc.dll.lib target\velopack_libc_win_x64_msvc.dll.lib
move target\aarch64-pc-windows-msvc\release\velopack_libc.dll.lib target\velopack_libc_win_arm64_msvc.dll.lib
move target\i686-pc-windows-msvc\release\velopack_libc.lib target\velopack_libc_win_x86_msvc.lib
move target\x86_64-pc-windows-msvc\release\velopack_libc.lib target\velopack_libc_win_x64_msvc.lib
move target\aarch64-pc-windows-msvc\release\velopack_libc.lib target\velopack_libc_win_arm64_msvc.lib
- name: Upload Rust Build Artifacts - name: Upload Rust Build Artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
@@ -86,6 +97,7 @@ jobs:
cp ./target/x86_64-unknown-linux-gnu/release/update ./target/UpdateNix_x64 cp ./target/x86_64-unknown-linux-gnu/release/update ./target/UpdateNix_x64
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./target/velopack_nodeffi_linux_x64_gnu.node cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./target/velopack_nodeffi_linux_x64_gnu.node
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_libc.so ./target/velopack_libc_linux_x64_gnu.so cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_libc.so ./target/velopack_libc_linux_x64_gnu.so
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_libc.a ./target/velopack_libc_linux_x64_gnu.a
- name: Build Rust (arm64) - name: Build Rust (arm64)
run: | run: |
cargo build --release --target aarch64-unknown-linux-gnu cargo build --release --target aarch64-unknown-linux-gnu
@@ -93,6 +105,7 @@ jobs:
cp ./target/aarch64-unknown-linux-gnu/release/update ./target/UpdateNix_arm64 cp ./target/aarch64-unknown-linux-gnu/release/update ./target/UpdateNix_arm64
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./target/velopack_nodeffi_linux_arm64_gnu.node cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./target/velopack_nodeffi_linux_arm64_gnu.node
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_libc.so ./target/velopack_libc_linux_arm64_gnu.so cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_libc.so ./target/velopack_libc_linux_arm64_gnu.so
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_libc.a ./target/velopack_libc_linux_arm64_gnu.a
- name: Upload Rust Build Artifacts - name: Upload Rust Build Artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
@@ -137,6 +150,8 @@ jobs:
file ./target/velopack_nodeffi_osx.node file ./target/velopack_nodeffi_osx.node
lipo -create -output ./target/velopack_libc_osx.dylib ./target/x86_64-apple-darwin/release/libvelopack_libc.dylib ./target/aarch64-apple-darwin/release/libvelopack_libc.dylib lipo -create -output ./target/velopack_libc_osx.dylib ./target/x86_64-apple-darwin/release/libvelopack_libc.dylib ./target/aarch64-apple-darwin/release/libvelopack_libc.dylib
file ./target/velopack_libc_osx.dylib file ./target/velopack_libc_osx.dylib
cp ./target/x86_64-apple-darwin/release/libvelopack_libc.a ./target/velopack_libc_osx_x64_gnu.a
cp ./target/aarch64-apple-darwin/release/libvelopack_libc.a ./target/velopack_libc_osx_arm64_gnu.a
- name: Upload Rust Build Artifacts - name: Upload Rust Build Artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
@@ -315,12 +330,17 @@ jobs:
mv target/release/*.node src/lib-nodejs/lib/native/ mv target/release/*.node src/lib-nodejs/lib/native/
mkdir lib-c mkdir lib-c
mkdir lib-c/lib mkdir lib-c/dylib
mkdir lib-c/staticlib
mkdir lib-c/include mkdir lib-c/include
mv target/release/*.so lib-c/lib/
mv target/release/*.dylib lib-c/lib/ mv target/release/*.so lib-c/dylib/
mv target/release/*.dll lib-c/lib/ mv target/release/*.dylib lib-c/dylib/
mv target/release/*.lib lib-c/lib/ mv target/release/*.dll lib-c/dylib/
mv target/release/*.dll.lib lib-c/dylib/
mv target/release/*.a lib-c/staticlib/
mv target/release/*.lib lib-c/staticlib/
cp src/lib-cpp/include/* lib-c/include/ cp src/lib-cpp/include/* lib-c/include/
mkdir bin-core mkdir bin-core

View File

@@ -15,7 +15,7 @@ rust-version.workspace = true
[lib] [lib]
path = "src/lib.rs" path = "src/lib.rs"
crate-type = ["cdylib"] crate-type = ["cdylib", "staticlib"]
[dependencies] [dependencies]
velopack.workspace = true velopack.workspace = true

View File

@@ -2,6 +2,7 @@ import { proxy } from "@neon-rs/load";
module.exports = proxy({ module.exports = proxy({
platforms: { platforms: {
"win32-x86-msvc": () => require("./native/velopack_nodeffi_win_x86_msvc.node"),
"win32-x64-msvc": () => require("./native/velopack_nodeffi_win_x64_msvc.node"), "win32-x64-msvc": () => require("./native/velopack_nodeffi_win_x64_msvc.node"),
"win32-arm64-msvc": () => require("./native/velopack_nodeffi_win_arm64_msvc.node"), "win32-arm64-msvc": () => require("./native/velopack_nodeffi_win_arm64_msvc.node"),
"darwin-x64": () => require("./native/velopack_nodeffi_osx.node"), "darwin-x64": () => require("./native/velopack_nodeffi_osx.node"),