25 lines
		
	
	
		
			651 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			651 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
|   | use std::env;
 | ||
|  | use std::fs;
 | ||
|  | use std::path::Path;
 | ||
|  | 
 | ||
|  | fn main() {
 | ||
|  |     let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
 | ||
|  | 
 | ||
|  |     let out_path = Path::new(&crate_dir);
 | ||
|  |     let out_path = out_path.join(Path::new("include"));
 | ||
|  | 
 | ||
|  |     // Ensure `out_path` exists
 | ||
|  |     fs::create_dir_all(&out_path).unwrap_or_else(|err| {
 | ||
|  |         if err.kind() != std::io::ErrorKind::AlreadyExists {
 | ||
|  |             panic!("Unable to create {:#?}: {:?}", out_path, err);
 | ||
|  |         }
 | ||
|  |     });
 | ||
|  | 
 | ||
|  |     let out_path = out_path.join(Path::new("solana.h"));
 | ||
|  |     let out_path = out_path.to_str().unwrap();
 | ||
|  | 
 | ||
|  |     cbindgen::generate(crate_dir)
 | ||
|  |         .unwrap()
 | ||
|  |         .write_to_file(out_path);
 | ||
|  | }
 |