From ff662f0828530e35ca993ea5757132410a04e050 Mon Sep 17 00:00:00 2001 From: greg Date: Fri, 6 Dec 2019 01:56:17 -0800 Subject: [PATCH] Playing with build script --- Cargo.toml | 5 +++++ build.rs | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index e5f31d2..e359346 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,3 +8,8 @@ edition = "2018" [build-dependencies] cc = "1.0.47" + +#[build] +#rustflags = ["-C", "link-args=-L/usr/include/slang.h,--verbose"] +#rustflags = ["-C", "link-arg=-L/usr/include/slang.h,-Wl,--verbose", "-Z", "print-link-args"] + diff --git a/build.rs b/build.rs index a620682..63b2f43 100644 --- a/build.rs +++ b/build.rs @@ -1,6 +1,7 @@ use cc::Build; -use std::path::Path; +use std::path::{PathBuf, Path}; +use std::fs::{ReadDir, read_dir}; fn main() { println!("Running build script"); @@ -8,8 +9,36 @@ fn main() { let most_src = Path::new("vendor/most-5.1.0/src"); println!("Most src path: {}", most_src.display()); + let c_files: Vec = read_dir(most_src).unwrap() + .into_iter() + .filter(|entry| { + let path = entry.as_ref().unwrap().path(); + match path.file_name() { + Some(s) if s.to_string_lossy() == "chkslang.c" => return false, + //Some(s) if s.to_string_lossy() == "main.c" => return false, + _ => () + }; + match path.extension() { + Some(ref s) if s.to_string_lossy() == "c" => true, + _ => false + } + }) + .map(|entry| { + entry.unwrap().path() + }).collect(); + + for entry in c_files.iter() { + println!("C FILE: {}", entry.display()); + } + Build::new() - .files(most_src) + .files(c_files) .include(most_src) + .include("/usr/bin/slang.h") + .flag("-lslang") .compile("most"); + + //println!("rustc-cdylib-link-arg=--verbose"); + //println!("cargo:rustc-link-search=/usr/lib"); + //println!("cargo:rustc-link-lib=static=slang"); }