@@ -16,7 +16,7 @@ fn download_duckdb_archive() -> Result<PathBuf, Box<dyn std::error::Error>> {
1616 . map ( PathBuf :: from)
1717 . unwrap_or_else ( |_| workspace_root. join ( "target" ) ) ;
1818
19- let duckdb_dir = target_dir. join ( DUCKDB_VERSION ) ;
19+ let duckdb_dir = target_dir. join ( format ! ( "duckdb-{ DUCKDB_VERSION}" ) ) ;
2020
2121 let target = env:: var ( "TARGET" ) ?;
2222 let ( platform, arch) = match target. as_str ( ) {
@@ -52,27 +52,17 @@ fn extract_duckdb_libraries(archive_path: PathBuf) -> Result<PathBuf, Box<dyn st
5252 . ok_or ( "Invalid archive path" ) ?
5353 . to_path_buf ( ) ;
5454
55- let lib_file = if env:: var ( "TARGET" ) . unwrap ( ) . contains ( "apple" ) {
56- "libduckdb.dylib"
57- } else {
58- "libduckdb.so"
59- } ;
60-
6155 // Check if already extracted.
62- if duckdb_dir. join ( lib_file ) . exists ( ) {
56+ if duckdb_dir. join ( "libduckdb.dylib" ) . exists ( ) && duckdb_dir . join ( "libduckdb.so" ) . exists ( ) {
6357 println ! ( "DuckDB libraries already extracted, skipping extraction" ) ;
6458 return Ok ( duckdb_dir) ;
6559 }
6660
67- println ! ( "Extracting DuckDB libraries to target/lib" ) ;
6861 let file = fs:: File :: open ( & archive_path) ?;
6962 let mut archive = zip:: ZipArchive :: new ( file) ?;
7063 archive. extract ( & duckdb_dir) ?;
64+ println ! ( "Extracting DuckDB libraries to {}" , duckdb_dir. display( ) ) ;
7165
72- println ! (
73- "cargo:warning=Extracted DuckDB libraries to: {}" ,
74- duckdb_dir. display( )
75- ) ;
7666 Ok ( duckdb_dir)
7767}
7868
@@ -130,7 +120,6 @@ fn main() {
130120 // Link against DuckDB dylib.
131121 println ! ( "cargo:rustc-link-search=native={}" , lib_path. display( ) ) ;
132122 println ! ( "cargo:rustc-link-lib=dylib=duckdb" ) ;
133- println ! ( "cargo:rustc-link-arg=-Wl,-rpath,{}" , lib_path. display( ) ) ;
134123
135124 if env:: var ( "TARGET" ) . unwrap ( ) . contains ( "linux" ) {
136125 println ! ( "cargo:rustc-link-lib=stdc++" ) ;
0 commit comments