From be1195351669bc8b9058744037b5249dfc0a6162 Mon Sep 17 00:00:00 2001 From: chyyran Date: Tue, 20 Feb 2024 18:08:00 -0500 Subject: [PATCH] build: allow passing arbitrary cargo flags --- librashader-build-script/src/main.rs | 19 +++++++++++++++---- librashader-capi/Cargo.toml | 2 +- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/librashader-build-script/src/main.rs b/librashader-build-script/src/main.rs index 68cb4aa..e013fa2 100644 --- a/librashader-build-script/src/main.rs +++ b/librashader-build-script/src/main.rs @@ -2,7 +2,7 @@ use clap::Parser; use std::fs::File; use std::io::{BufWriter, Write}; use std::path::{Path, PathBuf}; -use std::process::Command; +use std::process::{Command, ExitCode}; use std::{env, fs}; #[derive(Parser, Debug)] @@ -12,12 +12,14 @@ struct Args { profile: String, #[arg(long, global = true)] target: Option, + #[arg(last = true)] + cargoflags: Vec, } -pub fn main() { +pub fn main() -> ExitCode { // Do not update files on docsrs if env::var("DOCS_RS").is_ok() { - return; + return ExitCode::SUCCESS; } let args = Args::parse(); @@ -44,7 +46,14 @@ pub fn main() { cmd.arg(format!("--target={}", &target)); } - Some(cmd.status().expect("Failed to build librashader-capi")); + if !args.cargoflags.is_empty() { + cmd.args(args.cargoflags); + } + + let status = cmd.status().expect("Failed to build librashader-capi"); + if !status.success() { + return ExitCode::from(status.code().unwrap_or(1) as u8); + } let mut output_dir = PathBuf::from(format!("target/{}", profile)); if let Some(target) = &args.target { @@ -110,4 +119,6 @@ pub fn main() { .unwrap(); } } + + return ExitCode::SUCCESS; } diff --git a/librashader-capi/Cargo.toml b/librashader-capi/Cargo.toml index 1fa0cfd..bff6025 100644 --- a/librashader-capi/Cargo.toml +++ b/librashader-capi/Cargo.toml @@ -42,7 +42,7 @@ sptr = "0.3.2" path = "../librashader" version = "0.2.2" default-features = false -features = ["presets", "preprocess"] +features = ["reflect", "presets", "preprocess"] [target.'cfg(windows)'.dependencies.windows] version = "0.48.0"