Skip to content

Commit e322ae9

Browse files
authored
Switch out two submodules for one (#153)
1 parent a622f2d commit e322ae9

File tree

7 files changed

+47
-63
lines changed

7 files changed

+47
-63
lines changed

.gitmodules

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
[submodule "acquire-video-runtime"]
2-
path = acquire-libs/acquire-video-runtime
3-
url = ../acquire-video-runtime.git
4-
branch = main
5-
[submodule "acquire-libs/acquire-core-libs"]
6-
path = acquire-libs/acquire-core-libs
7-
url = ../acquire-core-libs.git
1+
[submodule "acquire-common"]
2+
path = acquire-common
3+
url = [email protected]:aliddell/acquire-common.git

acquire-common

Submodule acquire-common added at ba689ed

acquire-libs/CMakeLists.txt

Lines changed: 0 additions & 11 deletions
This file was deleted.

acquire-libs/acquire-core-libs

Lines changed: 0 additions & 1 deletion
This file was deleted.

acquire-libs/acquire-video-runtime

Lines changed: 0 additions & 1 deletion
This file was deleted.

build.rs

Lines changed: 43 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,20 @@ use std::fs;
55
#[derive(Deserialize)]
66
#[serde(rename_all = "kebab-case")]
77
struct DriverManifest {
8-
acquire_driver_common: String,
98
acquire_driver_zarr: String,
109
acquire_driver_egrabber: String,
1110
acquire_driver_hdcam: String,
1211
acquire_driver_spinnaker: String,
1312
}
1413

1514
fn main() {
16-
let dst = cmake::Config::new("acquire-libs")
17-
.target("acquire-video-runtime")
15+
let drivers_json =
16+
fs::read_to_string("drivers.json").expect("Failed to read from drivers.json.");
17+
let tags: DriverManifest =
18+
serde_json::from_str(drivers_json.as_str()).expect("Failed to parse drivers.json");
19+
20+
let dst = cmake::Config::new("acquire-common")
21+
.target("acquire-common")
1822
.profile("RelWithDebInfo")
1923
.static_crt(true)
2024
.define("NOTEST", "TRUE")
@@ -24,39 +28,6 @@ fn main() {
2428
.define("CMAKE_OSX_ARCHITECTURES", "x86_64;arm64")
2529
.build();
2630

27-
let drivers_json =
28-
fs::read_to_string("drivers.json").expect("Failed to read from drivers.json.");
29-
let tags: DriverManifest =
30-
serde_json::from_str(drivers_json.as_str()).expect("Failed to parse drivers.json");
31-
32-
let drivers_dir = std::path::PathBuf::from(std::env::var("OUT_DIR").unwrap()).join("drivers");
33-
34-
fetch_acquire_driver(
35-
&drivers_dir,
36-
"acquire-driver-common",
37-
tags.acquire_driver_common.as_str(),
38-
);
39-
fetch_acquire_driver(
40-
&drivers_dir,
41-
"acquire-driver-zarr",
42-
tags.acquire_driver_zarr.as_str(),
43-
);
44-
fetch_acquire_driver(
45-
&drivers_dir,
46-
"acquire-driver-egrabber",
47-
tags.acquire_driver_egrabber.as_str(),
48-
);
49-
fetch_acquire_driver(
50-
&drivers_dir,
51-
"acquire-driver-hdcam",
52-
tags.acquire_driver_hdcam.as_str(),
53-
);
54-
fetch_acquire_driver(
55-
&drivers_dir,
56-
"acquire-driver-spinnaker",
57-
tags.acquire_driver_spinnaker.as_str(),
58-
);
59-
6031
println!("cargo:rustc-link-search=native={}/lib", dst.display());
6132
println!("cargo:rustc-link-lib=static=acquire-video-runtime");
6233
println!("cargo:rustc-link-lib=static=acquire-device-properties");
@@ -80,9 +51,36 @@ fn main() {
8051
bindings
8152
.write_to_file(dst.join("bindings.rs"))
8253
.expect("Failed to write bindings.");
54+
55+
// copy acquire-driver-common
56+
copy_shared_lib(&dst, "acquire-driver-common");
57+
58+
// download and copy driver artifacts
59+
let drivers_dir = std::path::PathBuf::from(std::env::var("OUT_DIR").unwrap()).join("drivers");
60+
61+
fetch_acquire_driver(
62+
&drivers_dir,
63+
"acquire-driver-zarr",
64+
tags.acquire_driver_zarr.as_str(),
65+
);
66+
fetch_acquire_driver(
67+
&drivers_dir,
68+
"acquire-driver-egrabber",
69+
tags.acquire_driver_egrabber.as_str(),
70+
);
71+
fetch_acquire_driver(
72+
&drivers_dir,
73+
"acquire-driver-hdcam",
74+
tags.acquire_driver_hdcam.as_str(),
75+
);
76+
fetch_acquire_driver(
77+
&drivers_dir,
78+
"acquire-driver-spinnaker",
79+
tags.acquire_driver_spinnaker.as_str(),
80+
);
8381
}
8482

85-
fn fetch_acquire_driver(dst: &std::path::PathBuf, name: &str, tag: &str) {
83+
fn fetch_artifact(dst: &std::path::PathBuf, name: &str, tag: &str) {
8684
let build = if cfg!(target_os = "windows") {
8785
"win64"
8886
} else if cfg!(target_os = "macos") {
@@ -121,11 +119,14 @@ fn fetch_acquire_driver(dst: &std::path::PathBuf, name: &str, tag: &str) {
121119
zip_extract::extract(std::io::Cursor::new(archive), &dst, true).expect(&*format!(
122120
"Failed to extract {name}-{tag}-{build}.zip from response."
123121
));
122+
}
124123

125-
copy_acquire_driver(&dst, name);
124+
fn fetch_acquire_driver(dst: &std::path::PathBuf, name: &str, tag: &str) {
125+
fetch_artifact(dst, name, tag);
126+
copy_shared_lib(dst, name);
126127
}
127128

128-
fn copy_acquire_driver(dst: &std::path::PathBuf, name: &str) {
129+
fn copy_shared_lib(src: &std::path::PathBuf, name: &str) {
129130
let (prefix, postfix) = if cfg!(target_os = "windows") {
130131
("", ".dll")
131132
} else if cfg!(target_os = "macos") {
@@ -138,12 +139,12 @@ fn copy_acquire_driver(dst: &std::path::PathBuf, name: &str) {
138139

139140
let lib = format!("{prefix}{name}{postfix}");
140141

141-
std::fs::copy(
142-
format!("{}/lib/{lib}", dst.display()),
142+
fs::copy(
143+
format!("{}/lib/{lib}", src.display()),
143144
format!("python/acquire/{lib}"),
144145
)
145146
.expect(&format!(
146147
"Failed to copy {}/lib/{lib} to python folder.",
147-
dst.display()
148+
src.display()
148149
));
149150
}

drivers.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
{
2-
"acquire-driver-common": "0.1.6",
32
"acquire-driver-zarr": "0.1.8",
43
"acquire-driver-egrabber": "0.1.5",
54
"acquire-driver-hdcam": "0.1.7",

0 commit comments

Comments
 (0)