Add Target (de)serialization for environment vars
Also turn WebAssembly backend back on in its builder.
This commit is contained in:
parent
a4f97449b0
commit
4ad6a95860
|
@ -38,7 +38,7 @@ ENV EM_CONFIG=/emsdk-portable/.emscripten
|
|||
|
||||
ENV TARGETS=wasm32-unknown-emscripten,wasm32-experimental-emscripten
|
||||
|
||||
ENV RUST_CONFIGURE_ARGS --target=$TARGETS
|
||||
ENV RUST_CONFIGURE_ARGS --target=$TARGETS --experimental-targets=WebAssembly
|
||||
|
||||
ENV SCRIPT python2.7 ../x.py test --target $TARGETS
|
||||
|
||||
|
|
|
@ -624,6 +624,21 @@ impl Target {
|
|||
base.options.$key_name = args;
|
||||
}
|
||||
} );
|
||||
($key_name:ident, env) => ( {
|
||||
let name = (stringify!($key_name)).replace("_", "-");
|
||||
if let Some(a) = obj.find(&name[..]).and_then(|o| o.as_array()) {
|
||||
for o in a {
|
||||
if let Some(s) = o.as_string() {
|
||||
let p = s.split('=').collect::<Vec<_>>();
|
||||
if p.len() == 2 {
|
||||
let k = p[0].to_string();
|
||||
let v = p[1].to_string();
|
||||
base.options.$key_name.push((k, v));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
key!(is_builtin, bool);
|
||||
|
@ -635,6 +650,7 @@ impl Target {
|
|||
key!(late_link_args, link_args);
|
||||
key!(post_link_objects, list);
|
||||
key!(post_link_args, link_args);
|
||||
key!(link_env, env);
|
||||
key!(asm_args, list);
|
||||
key!(cpu);
|
||||
key!(features);
|
||||
|
@ -789,6 +805,17 @@ impl ToJson for Target {
|
|||
d.insert(name.to_string(), obj.to_json());
|
||||
}
|
||||
} );
|
||||
(env - $attr:ident) => ( {
|
||||
let name = (stringify!($attr)).replace("_", "-");
|
||||
if default.$attr != self.options.$attr {
|
||||
let obj = self.options.$attr
|
||||
.iter()
|
||||
.map(|&(ref k, ref v)| k.clone() + "=" + &v)
|
||||
.collect::<Vec<_>>();
|
||||
d.insert(name.to_string(), obj.to_json());
|
||||
}
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
target_val!(llvm_target);
|
||||
|
@ -810,6 +837,7 @@ impl ToJson for Target {
|
|||
target_option_val!(link_args - late_link_args);
|
||||
target_option_val!(post_link_objects);
|
||||
target_option_val!(link_args - post_link_args);
|
||||
target_option_val!(env - link_env);
|
||||
target_option_val!(asm_args);
|
||||
target_option_val!(cpu);
|
||||
target_option_val!(features);
|
||||
|
|
Loading…
Reference in a new issue