This commit is contained in:
Caelan
2024-10-01 10:18:21 -06:00
parent daf3b7ee9a
commit 7096517556
4 changed files with 39 additions and 37 deletions

View File

@@ -7,5 +7,5 @@ tw86 = "test --target i686-pc-windows-msvc --features windows"
bw = "build --features windows"
bw86 = "build --target i686-pc-windows-msvc --features windows"
[build]
rustflags = ["-C", "target-feature=+crt-static"]
#[build]
#rustflags = ["-C", "target-feature=+crt-static"]

View File

@@ -52,11 +52,17 @@ jobs:
- uses: Swatinem/rust-cache@v2
with:
key: "rust-build-windows"
- name: Prepare Cargo
run: |
cargo install cargo-edit -f
cargo set-version $NBGV_NuGetPackageVersion
- name: Install Windows7 Rust Toolchain
run: |
rustup toolchain install 1.75.0-x86_64-pc-windows-msvc
rustup target add i686-pc-windows-msvc --toolchain 1.75.0-x86_64-pc-windows-msvc
- name: Build Rust
env:
RUSTFLAGS: -C target-feature=+crt-static
run: cargo +1.75.0-x86_64-pc-windows-msvc build --target i686-pc-windows-msvc --features windows --release
- name: Upload Rust Build Artifacts
uses: actions/upload-artifact@v4
@@ -82,16 +88,18 @@ jobs:
- uses: Swatinem/rust-cache@v2
with:
key: "rust-build-linux"
- name: Build Rust (x64)
run: |
cargo build --release --target x86_64-unknown-linux-gnu
cp ./target/x86_64-unknown-linux-gnu/release/update ./target/release/UpdateNix_x64
- name: Build Rust (arm64)
env:
CROSS_NuGetPackageVersion: ${{ steps.nbgv.outputs.NuGetPackageVersion }}
- name: Prepare Cargo
run: |
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
cargo binstall cross --no-confirm --force
cargo binstall cargo-edit --no-confirm --force
cargo set-version $NBGV_NuGetPackageVersion
- name: Build Rust (x64)
run: |
cross build --release --target x86_64-unknown-linux-gnu
cp ./target/x86_64-unknown-linux-gnu/release/update ./target/release/UpdateNix_x64
- name: Build Rust (arm64)
run: |
cross build --release --target aarch64-unknown-linux-gnu
cp ./target/aarch64-unknown-linux-gnu/release/update ./target/release/UpdateNix_arm64
- name: Upload Rust Build Artifacts
@@ -118,6 +126,10 @@ jobs:
- uses: Swatinem/rust-cache@v2
with:
key: "rust-build-${{ matrix.os }}"
- name: Prepare Cargo
run: |
cargo install cargo-edit -f
cargo set-version $NBGV_NuGetPackageVersion
- name: Build Rust
run: |
cargo build --release

View File

@@ -1,3 +1,9 @@
[target.x86_64-unknown-linux-gnu]
pre-build = [
"dpkg --add-architecture $CROSS_DEB_ARCH",
"apt-get update && apt-get install -y libssl-dev:$CROSS_DEB_ARCH",
]
[target.aarch64-unknown-linux-gnu]
pre-build = [
"dpkg --add-architecture $CROSS_DEB_ARCH",

View File

@@ -6,7 +6,7 @@ fn main() {
#[cfg(target_os = "windows")]
delay_load();
let version = get_package_version();
let version = env!("CARGO_PKG_VERSION");
let ver = semver::Version::parse(&version).expect("Unable to parse ngbv output as semver version");
let ver: u64 = ver.major << 48 | ver.minor << 32 | ver.patch << 16;
let desc = format!("Velopack {}", version);
@@ -27,27 +27,10 @@ fn main() {
.unwrap();
}
fn get_package_version() -> String {
if let Ok(version) = env::var("NuGetPackageVersion") {
// NuGetPackageVersion is set, return it trimmed
return version.trim().to_string();
} else if let Ok(version) = env::var("NBGV_NuGetPackageVersion") {
// NBGV_NuGetPackageVersion is set, return it trimmed
return version.trim().to_string();
} else if let Ok(version) = env::var("CROSS_NuGetPackageVersion") {
// NBGV_NuGetPackageVersion is set, return it trimmed
return version.trim().to_string();
} else if env::var("CI").is_ok() {
// CI is set, NuGetPackageVersion should be set always in CI
panic!("Error: NuGetPackageVersion must be set in CI");
} else {
// CI is not set, return "v0.0.0-local"
return "0.0.0-local".to_string();
}
}
#[cfg(target_os = "windows")]
fn delay_load() {
let features = env::var("CARGO_CFG_TARGET_FEATURE").unwrap_or_default();
if features.contains("crt-static") {
delay_load_exe("update");
delay_load_exe("setup");
delay_load_exe("stub");
@@ -55,6 +38,7 @@ fn delay_load() {
println!("cargo:rustc-link-arg=/WX");
println!("cargo:rustc-link-arg=/IGNORE:4099"); // PDB was not found
println!("cargo:rustc-link-arg=/IGNORE:4199"); // delayload ignored, no imports found
}
}
// https://github.com/rust-lang/rustup/blob/master/build.rs#L45