1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
use crossbundle_tools::types::{apple_bundle::prelude::*, IosTarget};
use serde::{Deserialize, Serialize};
use std::path::PathBuf;
/// Full Apple configuration.
#[derive(Debug, Clone, Deserialize, Serialize, Default)]
pub struct AppleConfig {
/// `Info.plist` configuration.
pub info_plist: Option<InfoPlist>,
/// Path to `Info.plist` file.
///
/// **Important:** If this field specified - `info_plist` property will be ignored.
pub info_plist_path: Option<PathBuf>,
/// Apple `resources` directory path relatively to project path.
///
/// If specified more than one - all resources will be placed into one directory.
#[serde(default)]
pub resources: Vec<PathBuf>,
/// Custom Apple `assets` directory path relatively to project path.
///
/// If specified more than one - all assets will be placed into one directory.
///
/// **Important:** This property has higher priority than global property.
#[serde(default)]
pub assets: Vec<PathBuf>,
/// Apple debug build targets.
#[serde(default)]
pub debug_build_targets: Vec<IosTarget>,
/// Apple release build targets.
#[serde(default)]
pub release_build_targets: Vec<IosTarget>,
// TODO: Add Apple plugins.
// #[serde(flatten)]
// pub plugins: ApplePlugins,
}