হ্যালো মরিচা উদাহরণ

নিম্নলিখিত একটি মরিচা বাইনারি নির্মাণের একটি উদাহরণ যা একটি মরিচা লাইব্রেরির উপর নির্ভর করে।

মরিচা মডিউলগুলি বর্তমানে build/soong/rust/config/allowed_list.go- তে সংজ্ঞায়িত নির্দিষ্ট ডিরেক্টরিগুলিতে সীমাবদ্ধ। নিম্নলিখিত helloWorld মডিউল এই তালিকা পরিবর্তন এড়াতে external/rust ডিরেক্টরি ব্যবহার করে.

AOSP উৎস রুট থেকে

mkdir -p external/rust/hello_rust/src/
mkdir -p external/rust/libsimple_printer/src/

নিম্নলিখিত বিষয়বস্তু সহ external/rust/hello_rust/src/hello_rust.rs তৈরি করুন:

use simple_printer;
fn main() {
 simple_printer::print_hello_rust();
}

নিম্নলিখিত বিষয়বস্তু সহ external/rust/libsimple_printer/src/lib.rs ফাইল তৈরি করুন:

pub fn print_hello_rust() {
  println!("Hello Rust!");
}

নিম্নলিখিত বিষয়বস্তু সহ একটি external/rust/hello_rust/Android.bp ফাইল তৈরি করুন:

rust_binary {
    name: "hello_rust",

    // srcs must contain a single source file, the entry point source.
    srcs: ["src/hello_rust.rs"],

    // rustlibs are Rust library dependencies. The type, rlib (static) or dylib
    // (dynamic), are chosen automatically based on module type and target
    // to avoid linkage issues.
    rustlibs: ["libsimple_printer"],

    // define any additional compilation flags
    flags: [
        "-C debug-assertions=yes",
    ],

    // cc libraries can be linked in to rust binaries and libraries through the
    // shared_libs and static_libs properties. These are not needed for this
    // simple example, so they are not included.
}

নিম্নলিখিত বিষয়বস্তু সহ একটি external/rust/libsimple_printer/Android.bp ফাইল তৈরি করুন:

// rust_library provides dylib and rlib variants.
rust_library {
    //name or stem properties must be of the form lib<crate_name><any_suffix>
    name: "libsimple_printer",

    //crate_name must match the name used in source (e.g. extern crate <name>)
    crate_name: "simple_printer",

    //srcs must contain a single source file, the entry point source
    srcs: ["src/lib.rs"],
}

অবশেষে, আপনার hello_rust মডিউল তৈরি করুন:

source build/envsetup.sh
lunch aosp_arm64-eng
m hello_rust