diff --git a/dev/release/rat_exclude_files.txt b/dev/release/rat_exclude_files.txt index 54ec748354..4ee78435c6 100644 --- a/dev/release/rat_exclude_files.txt +++ b/dev/release/rat_exclude_files.txt @@ -38,4 +38,5 @@ r/*/cran-comments.md r/*/.Rbuildignore r/*/tests/testthat/_snaps/* rust/Cargo.lock +rust/driver/snowflake/go testing/* diff --git a/rust/driver/snowflake/Cargo.toml b/rust/driver/snowflake/Cargo.toml index 1c2d96cdb1..dd122500eb 100644 --- a/rust/driver/snowflake/Cargo.toml +++ b/rust/driver/snowflake/Cargo.toml @@ -29,6 +29,18 @@ homepage.workspace = true repository.workspace = true keywords.workspace = true categories.workspace = true +exclude = [ + "go/adbc/driver/bigquery", + "go/adbc/driver/flightsql", + "go/adbc/driver/panicdummy", + "go/adbc/drivermgr", + "go/adbc/pkg/bigquery", + "go/adbc/pkg/flightsql", + "go/adbc/pkg/gen", + "go/adbc/pkg/panicdummy", + "go/adbc/sqldriver", + "go/adbc/validation", +] [features] default = ["bundled", "env", "dotenv"] diff --git a/rust/driver/snowflake/build.rs b/rust/driver/snowflake/build.rs index 914595064f..652f7747d1 100644 --- a/rust/driver/snowflake/build.rs +++ b/rust/driver/snowflake/build.rs @@ -18,13 +18,21 @@ use std::error::Error; /// Build and link the Go driver statically. +/// +/// This defaults to assuming the source of the ADBC Go implementation is +/// available via the `go` symlink. This can be overridden by setting the +/// `ADBC_GO_SRC_DIR` environment variable. #[cfg(feature = "bundled")] fn bundled() -> Result<(), Box> { use std::{env, path::PathBuf, process::Command}; - let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR")?); - let go_dir = manifest_dir.ancestors().nth(3).unwrap().join("go"); - let go_pkg = go_dir.join("adbc/pkg/snowflake"); + let go_pkg = match env::var("ADBC_GO_SRC_DIR") { + // Use the provides path to find the source + Ok(path) => PathBuf::from(path), + // Assume the source is available via the symlink + Err(_) => PathBuf::from(env::var("CARGO_MANIFEST_DIR")?).join("go"), + } + .join("adbc/pkg/snowflake"); let out_dir = PathBuf::from(env::var("OUT_DIR")?); let archive = out_dir.join("libsnowflake.a"); diff --git a/rust/driver/snowflake/go b/rust/driver/snowflake/go new file mode 120000 index 0000000000..00fc8f7e71 --- /dev/null +++ b/rust/driver/snowflake/go @@ -0,0 +1 @@ +../../../go \ No newline at end of file