mirror of
				https://github.com/isar/rusqlite.git
				synced 2025-11-01 14:28:55 +08:00 
			
		
		
		
	Simplify bindgen generation
`rusqlite` users cannot use old versions (< 3.8.3) of SQLite anymore. And `libsqlite3-sys` users should not use SQLITE_DETERMINISTIC when using SQLite < 3.8.3.
This commit is contained in:
		| @@ -522,7 +522,6 @@ mod bindings { | |||||||
|  |  | ||||||
|     pub fn write_to_out_dir(header: HeaderLocation, out_path: &Path) { |     pub fn write_to_out_dir(header: HeaderLocation, out_path: &Path) { | ||||||
|         let header: String = header.into(); |         let header: String = header.into(); | ||||||
|         let mut output = Vec::new(); |  | ||||||
|         let mut bindings = bindgen::builder() |         let mut bindings = bindgen::builder() | ||||||
|             .default_macro_constant_type(bindgen::MacroTypeVariation::Signed) |             .default_macro_constant_type(bindgen::MacroTypeVariation::Signed) | ||||||
|             .disable_nested_struct_naming() |             .disable_nested_struct_naming() | ||||||
| @@ -631,21 +630,7 @@ mod bindings { | |||||||
|             .layout_tests(false) |             .layout_tests(false) | ||||||
|             .generate() |             .generate() | ||||||
|             .unwrap_or_else(|_| panic!("could not run bindgen on header {}", header)) |             .unwrap_or_else(|_| panic!("could not run bindgen on header {}", header)) | ||||||
|             .write(Box::new(&mut output)) |             .write_to_file(out_path) | ||||||
|             .expect("could not write output of bindgen"); |  | ||||||
|         let mut output = String::from_utf8(output).expect("bindgen output was not UTF-8?!"); |  | ||||||
|  |  | ||||||
|         // rusqlite's functions feature ors in the SQLITE_DETERMINISTIC flag when it |  | ||||||
|         // can. This flag was added in SQLite 3.8.3, but oring it in in prior |  | ||||||
|         // versions of SQLite is harmless. We don't want to not build just |  | ||||||
|         // because this flag is missing (e.g., if we're linking against |  | ||||||
|         // SQLite 3.7.x), so append the flag manually if it isn't present in bindgen's |  | ||||||
|         // output. |  | ||||||
|         if !output.contains("pub const SQLITE_DETERMINISTIC") { |  | ||||||
|             output.push_str("\npub const SQLITE_DETERMINISTIC: i32 = 2048;\n"); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         fs::write(out_path, output.as_bytes()) |  | ||||||
|             .unwrap_or_else(|_| panic!("Could not write to {:?}", out_path)); |             .unwrap_or_else(|_| panic!("Could not write to {:?}", out_path)); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user