summaryrefslogtreecommitdiff
path: root/build.rs
blob: 489f9f9d2628b7a82b0d0399813271f0dbe44fdd (plain)
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
37
38
39
// Copyright 2018 the Deno authors. All rights reserved. MIT license.

// Run "cargo build -vv" if you want to see gn output.
// TODO For the time being you must set an env var DENO_BUILD_PATH
// which might be `pwd`/out/debug or `pwd`/out/release.
// TODO Currently DENO_BUILD_PATH must be absolute.
// TODO Combine DENO_BUILD_PATH and OUT_DIR.

use std::env;
use std::process::Command;

fn main() {
  let mode = env::var("PROFILE").unwrap();
  let deno_build_path = env::var("DENO_BUILD_PATH").unwrap();

  let status = Command::new("python")
    .env("DENO_BUILD_PATH", &deno_build_path)
    .env("DENO_BUILD_MODE", &mode)
    .arg("./tools/setup.py")
    .status()
    .expect("setup.py failed");
  assert!(status.success());

  // These configurations must be outputted after tools/setup.py is run.
  println!("cargo:rustc-link-search=native={}/obj", deno_build_path);
  println!("cargo:rustc-link-lib=static=deno_deps");
  // TODO Remove this and only use OUT_DIR at some point.
  println!("cargo:rustc-env=DENO_BUILD_PATH={}", deno_build_path);

  let status = Command::new("python")
    .env("DENO_BUILD_PATH", &deno_build_path)
    .env("DENO_BUILD_MODE", &mode)
    .arg("./tools/build.py")
    .arg("deno_deps")
    .arg("-v")
    .status()
    .expect("build.py failed");
  assert!(status.success());
}