From b7184434ca555dc21dbb47ba7041c6d9b3fc21ac Mon Sep 17 00:00:00 2001 From: liangxinyan Date: Sat, 17 May 2025 16:56:12 +0800 Subject: [PATCH] add aarch64 and armv7 config Signed-off-by: liangxinyan --- config.toml.bak | 27 +++++++++++++++++++++++++++ rust_build.sh | 22 ++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 config.toml.bak diff --git a/config.toml.bak b/config.toml.bak new file mode 100644 index 00000000000..465edb0fc54 --- /dev/null +++ b/config.toml.bak @@ -0,0 +1,27 @@ +[llvm] +download-ci-llvm = false # 使用预编译LLVM加速 + +[build] +target = ["aarch64-unknown-linux-ohos", "armv7-unknown-linux-ohos"] # 目标平台 +extended = true # 构建完整的工具链(包括 rustfmt、clippy 等) +tools = ["cargo", "rustfmt", "clippy", "rust-analyzer", "miri", "llvm-tools", "src", "rustdoc", "analysis", "rust-analyzer-proc-macro-srv", "wasm-component-ld", "cargo-miri"] # 包含的工具 +profiler = true + +[rust] +channel = "dev" +profile-generate = "true" + +[install] +prefix = "/usr/local" + +[target.aarch64-unknown-linux-ohos] +cc = "replace_path/aarch64-unknown-linux-ohos-clang" +cxx = "replace_path/aarch64-unknown-linux-ohos-clang++" +linker = "replace_path/aarch64-unknown-linux-ohos-clang" +ar = "replace_path/llvm-ar" + +[target.armv7-unknown-linux-ohos] +cc = "replace_path/armv7-unknown-linux-ohos-clang" +cxx = "replace_path/armv7-unknown-linux-ohos-clang++" +linker = "replace_path/armv7-unknown-linux-ohos-clang" +ar = "replace_path/llvm-ar" diff --git a/rust_build.sh b/rust_build.sh index b9b616f0568..647ef6ce7ae 100755 --- a/rust_build.sh +++ b/rust_build.sh @@ -111,6 +111,22 @@ pushd $CURRENT_DIR > /dev/null echo "dist rust-dev build start ..." python3 x.py dist echo "dist rust build end" + + # aarch64 armv7 build + mv config.toml config.toml.bak1 + mv config.toml.bak config.toml + mkdir -p harmony/build + git clone https://gitee.com/openharmony/build.git harmony/build + pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests + pushd harmony/build > /dev/null + python3 ./harmony/build/scripts/download_sdk.py --branch OpenHarmony-5.1.0-Release --product-name ohos-sdk-full_api_5.1.0-Release --api-version 18 + popd > /dev/null + replace_path="$CURRENT_DIR/harmony/prebuilts/ohos-sdk/linux/18/native/llvm/bin" + sed -i 's|replace_path|'"$replace_path"'|g' config.toml + echo "aarch64 and armv7 stage2 build start ..." + python3 x.py build --stage 2 + echo "aarch64 and armv7 stage2 build end" + python3 x.py dist popd > /dev/null EXTRA_PATH=$CURRENT_DIR/tmp_rust/extra @@ -131,6 +147,12 @@ pushd $CURRENT_DIR/build/dist > /dev/null echo "----------rust build finish------------" mkdir -p rust-toolchain/lib/rustlib/src popd > /dev/null + + tar -zxvf rust-std-1.84.0-dev-aarch64-unknown-linux-ohos.tar.gz + cp -rf rust-std-1.84.0-dev-aarch64-unknown-linux-ohos/rust-std-aarch64-unknown-linux-ohos/lib/rustlib/aarch64-unknown-linux-ohos rust-1.84.0-dev-x86_64-unknown-linux-gnu/rust-toolchain/lib/rustlib/ + + tar -zxvf rust-std-1.84.0-dev-armv7-unknown-linux-ohos.tar.gz + cp -rf rust-std-1.84.0-dev-armv7-unknown-linux-ohos/rust-std-armv7-unknown-linux-ohos/lib/rustlib/armv7-unknown-linux-ohos rust-1.84.0-dev-x86_64-unknown-linux-gnu/rust-toolchain/lib/rustlib/ cp -rf $EXTRA_PATH/libclang* $package_dir/rust-toolchain/lib/ cp $package_dir/rust-toolchain/lib/libclang.so $package_dir/rust-toolchain/lib/libclang.so.19.1.7git -- Gitee