summaryrefslogtreecommitdiff
path: root/gcc/gcc-test/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/gcc-test/build.rs')
-rw-r--r--gcc/gcc-test/build.rs94
1 files changed, 0 insertions, 94 deletions
diff --git a/gcc/gcc-test/build.rs b/gcc/gcc-test/build.rs
deleted file mode 100644
index e6308ed..0000000
--- a/gcc/gcc-test/build.rs
+++ /dev/null
@@ -1,94 +0,0 @@
-extern crate gcc;
-
-use std::env;
-use std::fs;
-use std::path::PathBuf;
-
-fn main() {
- let out = PathBuf::from(env::var_os("OUT_DIR").unwrap());
- fs::remove_dir_all(&out).unwrap();
- fs::create_dir(&out).unwrap();
-
- gcc::Build::new()
- .file("src/foo.c")
- .flag_if_supported("-Wall")
- .flag_if_supported("-Wfoo-bar-this-flag-does-not-exist")
- .define("FOO", None)
- .define("BAR", "1")
- .compile("foo");
-
- gcc::Build::new()
- .file("src/bar1.c")
- .file("src/bar2.c")
- .include("src/include")
- .compile("bar");
-
- let target = std::env::var("TARGET").unwrap();
- let file = target.split("-").next().unwrap();
- let file = format!("src/{}.{}",
- file,
- if target.contains("msvc") { "asm" } else { "S" });
- gcc::Build::new()
- .file(file)
- .compile("asm");
-
- gcc::Build::new()
- .file("src/baz.cpp")
- .cpp(true)
- .compile("baz");
-
- if target.contains("windows") {
- gcc::Build::new()
- .file("src/windows.c")
- .compile("windows");
- }
-
- // Test that the `windows_registry` module will set PATH by looking for
- // nmake which runs vanilla cl, and then also test it after we remove all
- // the relevant env vars from our own process.
- if target.contains("msvc") {
- let out = out.join("tmp");
- fs::create_dir(&out).unwrap();
- println!("nmake 1");
- let status = gcc::windows_registry::find(&target, "nmake.exe")
- .unwrap()
- .env_remove("MAKEFLAGS")
- .arg("/fsrc/NMakefile")
- .env("OUT_DIR", &out)
- .status()
- .unwrap();
- assert!(status.success());
-
- fs::remove_dir_all(&out).unwrap();
- fs::create_dir(&out).unwrap();
-
- env::remove_var("PATH");
- env::remove_var("VCINSTALLDIR");
- env::remove_var("INCLUDE");
- env::remove_var("LIB");
- println!("nmake 2");
- let status = gcc::windows_registry::find(&target, "nmake.exe")
- .unwrap()
- .env_remove("MAKEFLAGS")
- .arg("/fsrc/NMakefile")
- .env("OUT_DIR", &out)
- .status()
- .unwrap();
- assert!(status.success());
- println!("cargo:rustc-link-lib=msvc");
- println!("cargo:rustc-link-search={}", out.display());
- }
-
- // This tests whether we can build a library but not link it to the main
- // crate. The test module will do its own linking.
- gcc::Build::new()
- .cargo_metadata(false)
- .file("src/opt_linkage.c")
- .compile("OptLinkage");
-
- let out = gcc::Build::new()
- .file("src/expand.c")
- .expand();
- let out = String::from_utf8(out).unwrap();
- assert!(out.contains("hello world"));
-}