use rust based build script

This commit is contained in:
Colin Sherratt
2014-11-20 22:35:42 -05:00
parent 1b4f3c7551
commit c7c02f2129
3 changed files with 32 additions and 14 deletions

View File

@ -7,7 +7,7 @@ authors = [
"Erick Tryzelaar"
]
build = "./scripts/compile-for-cargo"
build = "scripts/build.rs"
[lib]

31
scripts/build.rs Normal file
View File

@ -0,0 +1,31 @@
use std::io::Command;
use std::io::fs;
#[cfg(target_os = "linux")]
fn main() {
Command::new("make")
.arg("-C").arg("modules/oculus_sdk_linux/")
.status()
.ok().expect("Failed to build");
fs::copy(&Path::new("modules/oculus_sdk_linux/LibOVR/Lib/Linux/Release/x86_64/libovr.a"),
&Path::new(env!("OUT_DIR")).join(Path::new("libovr.a")))
.ok().expect("Failed to move file");
println!("cargo:rustc-flags=-L {} -l ovr:static", env!("OUT_DIR"));
}
#[cfg(target_os = "macos")]
fn main() {
Command::new("xcodebuild")
.arg("-project")
.arg("modules/oculus_sdk_mac/LibOVR/Projects/Mac/Xcode/LibOVR.xcodeproj")
.arg("build")
.status()
.ok().expect("Failed to build");
fs::copy(&Path::new("modules/oculus_sdk_mac/LibOVR/Lib/MacOS/Release/libovr.a"),
&Path::new(env!("OUT_DIR")).join(Path::new("libovr.a")))
.ok().expect("Failed to move file");
println!("cargo:rustc-flags=-L {} -l ovr:static", env!("OUT_DIR"));
}

View File

@ -1,13 +0,0 @@
#!/bin/sh
set -e
OS=`uname`
if [ "x$OS" = "xLinux" ] ; then
make -C modules/oculus_sdk_linux/
cp modules/oculus_sdk_linux/LibOVR/Lib/Linux/Release/x86_64/libovr.a $OUT_DIR/
elif [ "x$OS" = "xDarwin" ] ; then
xcodebuild -project modules/oculus_sdk_mac/LibOVR/Projects/Mac/Xcode/LibOVR.xcodeproj build
cp modules/oculus_sdk_mac/LibOVR/Lib/MacOS/Release/libovr.a $OUT_DIR/
fi