Skip to content
Snippets Groups Projects
build.rs 1.22 KiB
Newer Older
  • Learn to ignore specific revisions
  • Aaron Councilman's avatar
    Aaron Councilman committed
    #![feature(exit_status_error)]
    
    
    rarbore2's avatar
    rarbore2 committed
    use std::env::var;
    use std::path::Path;
    use std::process::Command;
    
    fn main() {
        if cfg!(feature = "cuda") {
            let out_dir = var("OUT_DIR").unwrap();
            Command::new("nvcc")
                .args(&["src/rtdefs.cu", "-c", "-o"])
                .arg(&format!("{}/rtdefs.o", out_dir))
                .status()
    
    Aaron Councilman's avatar
    Aaron Councilman committed
                .expect("PANIC: NVCC failed when building runtime. Is NVCC installed?")
                .exit_ok()
                .expect("NVCC did not succeed");
    
    rarbore2's avatar
    rarbore2 committed
            Command::new("ar")
                .current_dir(&Path::new(&out_dir))
    
    prathi3's avatar
    prathi3 committed
                .args(&["crus", "librtdefs.a", "rtdefs.o"])
    
    rarbore2's avatar
    rarbore2 committed
                .status()
    
    Aaron Councilman's avatar
    Aaron Councilman committed
                .unwrap()
                .exit_ok()
                .expect("ar did not succeed");
    
    rarbore2's avatar
    rarbore2 committed
    
            println!("cargo::rustc-link-search=native={}", out_dir);
            println!("cargo::rustc-link-search=native=/usr/lib/x86_64-linux-gnu/");
    
    prathi3's avatar
    prathi3 committed
            println!("cargo::rustc-link-search=native=/usr/local/cuda/lib64");
    
            println!("cargo::rustc-link-search=native=/opt/cuda/lib/");
    
    rarbore2's avatar
    rarbore2 committed
            println!("cargo::rustc-link-lib=static=rtdefs");
            println!("cargo::rustc-link-lib=cudart");
    
            println!("cargo::rustc-link-lib=cublas");
    
    rarbore2's avatar
    rarbore2 committed
            println!("cargo::rerun-if-changed=src/rtdefs.cu");
        }
    }