-
Notifications
You must be signed in to change notification settings - Fork 28
/
build.rs
41 lines (38 loc) · 1.47 KB
/
build.rs
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
40
41
// Copyright (c) 2023 Huawei Technologies Co.,Ltd. All rights reserved.
//
// StratoVirt is licensed under Mulan PSL v2.
// You can use this software according to the terms and conditions of the Mulan
// PSL v2.
// You may obtain a copy of Mulan PSL v2 at:
// http://license.coscl.org.cn/MulanPSL2
// THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
// KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
// See the Mulan PSL v2 for more details.
fn ohos_env_configure() {
if let Ok(ohos_sdk_path) = std::env::var("OHOS_SDK") {
println!("cargo:rustc-link-arg=--target=aarch64-linux-ohos");
println!("cargo:rustc-link-arg=--verbose");
println!("cargo:rustc-link-arg=--sysroot={}/sysroot", ohos_sdk_path);
println!("cargo:rustc-link-arg=-lpixman_static");
println!(
"cargo:rustc-link-search={}/sysroot/usr/lib/aarch64-linux-ohos",
ohos_sdk_path
);
}
}
fn main() {
let target_env_ohos = matches!(std::env::var("CARGO_CFG_TARGET_ENV"), Ok(ret) if ret == "ohos");
if target_env_ohos {
println!("cargo:rerun-if-env-changed=OHOS_SDK");
ohos_env_configure();
} else if cfg!(any(
feature = "demo_device",
feature = "gtk",
feature = "ramfb",
feature = "virtio_gpu",
feature = "vnc",
)) {
println!("cargo:rustc-link-arg=-lpixman-1");
}
}