cli/
cargo_manifest.rs

1pub use cargo_toml::Package as CargoPackage;
2use creator_tools::types::{android_manifest::UsesPermission, *};
3use serde::{Deserialize, Serialize};
4use std::path::PathBuf;
5
6pub type CargoManifest = cargo_toml::Manifest<Metadata>;
7
8#[derive(Debug, Clone, Deserialize, Serialize)]
9pub struct Metadata {
10    pub app_name: Option<String>,
11    pub version_name: Option<String>,
12    pub version_code: Option<String>,
13    pub min_sdk_version: Option<u32>,
14    pub target_sdk_version: Option<u32>,
15    pub max_sdk_version: Option<u32>,
16    pub icon: Option<String>,
17
18    #[serde(default)]
19    pub android_permissions: Vec<UsesPermission>,
20
21    #[serde(default)]
22    pub use_android_manifest: bool,
23    pub android_manifest_path: Option<PathBuf>,
24
25    #[serde(default)]
26    pub use_info_plist: bool,
27    pub info_plist_path: Option<PathBuf>,
28
29    pub android_app_id: Option<String>,
30    /// Android resources directory path relatively to project path.
31    pub android_res: Option<PathBuf>,
32    /// Android assets directory path relatively to project path.
33    pub android_assets: Option<PathBuf>,
34    /// Android build targets.
35    pub android_build_targets: Option<Vec<AndroidTarget>>,
36
37    /// Apple build targets.
38    pub apple_build_targets: Option<Vec<AppleTarget>>,
39    /// Apple resources directory path relatively to project path.
40    pub apple_res: Option<PathBuf>,
41    /// Apple assets directory path relatively to project path.
42    pub apple_assets: Option<PathBuf>,
43}