forked from psych3r/driverkit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.rs
More file actions
36 lines (32 loc) · 1.28 KB
/
build.rs
File metadata and controls
36 lines (32 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
fn main() {
let mut build = cc::Build::new();
build
.file("c_src/driverkit.cpp")
.cpp(true)
.std("c++2a")
.flag("-w")
.shared_flag(true)
.flag("-fPIC");
if let os_info::Version::Semantic(major, minor, patch) = os_info::get().version() {
if major <= &10 {
println!("macOS version {major}.{minor}.{patch}, using kext...");
// kext
build.flag("-D");
build.flag("USE_KEXT");
build.include("c_src/Karabiner-VirtualHIDDevice/dist/include");
} else {
println!("macOS version {major}.{minor}.{patch}, using dext...");
// dext
build.include(
"c_src/Karabiner-DriverKit-VirtualHIDDevice/include/pqrs/karabiner/driverkit",
);
build.include("c_src/Karabiner-DriverKit-VirtualHIDDevice/vendor/vendor/include");
build.include("c_src/Karabiner-DriverKit-VirtualHIDDevice/src/Daemon/vendor/include");
}
}
build.compile("driverkit");
println!("cargo:rerun-if-changed=c_src/c_src/driverkit.hpp");
println!("cargo:rerun-if-changed=c_src/c_src/driverkit.cpp");
println!("cargo:rustc-link-lib=framework=IOKit");
println!("cargo:rustc-link-lib=framework=CoreFoundation");
}