Skip to main content

Module builders

Module builders 

Source
Available on crate feature full only.
Expand description

Build automation for mobile platforms.

This module provides builders for Android and iOS that automate the process of compiling Rust code to mobile libraries and packaging them into mobile apps.

§Overview

The builders handle the complete build pipeline:

  1. Rust compilation - Cross-compile Rust to mobile targets
  2. Binding generation - Generate UniFFI Kotlin/Swift bindings
  3. Native library packaging - Copy .so files to Android or create xcframework for iOS
  4. App building - Run Gradle (Android) or xcodebuild (iOS)

§Builders

BuilderPlatformOutput
AndroidBuilderAndroidAPK with native .so libraries
IosBuilderiOSxcframework with static libraries

§Common Utilities

The common module (internal) provides shared functionality:

  • Workspace-aware Cargo target directory detection
  • Host library path resolution for UniFFI binding generation
  • Consistent command execution with actionable error messages

§Builder Options

Both builders support the following configuration:

  • verbose(bool) - Enable detailed output showing each build step
  • dry_run(bool) - Preview build steps without making changes
  • output_dir(path) - Customize output location (default: target/mobench/)
  • crate_dir(path) - Override auto-detected crate location

§Example

use mobench_sdk::builders::{AndroidBuilder, IosBuilder};
use mobench_sdk::{BuildConfig, BuildProfile, Target};

// Build for Android with dry-run
let android = AndroidBuilder::new(".", "my-bench")
    .verbose(true)
    .dry_run(true);  // Preview only

// Build for iOS
let ios = IosBuilder::new(".", "my-bench")
    .verbose(true);

let config = BuildConfig {
    target: Target::Android,
    profile: BuildProfile::Release,
    incremental: true,
};

android.build(&config)?;

Re-exports§

pub use android::AndroidBuilder;
pub use common::BenchMeta;
pub use common::EmbeddedBenchSpec;
pub use common::create_bench_meta;
pub use common::embed_bench_meta;
pub use common::embed_bench_spec;
pub use ios::IosBuilder;
pub use ios::SigningMethod;

Modules§

android
Android build automation.
common
Common utilities shared between Android and iOS builders.
ios
iOS build automation.