diff --git a/config.toml.bak b/config.toml.bak new file mode 100644 index 0000000000000000000000000000000000000000..465edb0fc54bcfcb5b9eb89676517787ab8e716e --- /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 b9b616f0568c772e4cf0bb4b7726d657391be06a..647ef6ce7ae5a676e3a4aee3750adb053dbbf811 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