Struct ParsedSdk

Source
pub struct ParsedSdk {
    pub platform_name: String,
    pub name: String,
    pub default_deployment_target: String,
    pub default_variant: Option<String>,
    pub display_name: String,
    pub maximum_deployment_target: String,
    pub minimal_display_name: String,
    pub supported_targets: HashMap<String, SupportedTarget>,
    /* private fields */
}
Expand description

An Apple SDK with parsed settings.

Unlike SimpleSdk, this type gives you access to rich metadata about the Apple SDK. This includes things like targeting capabilities.

Fields§

§platform_name: String

The name of the platform.

This is likely the part before the *.platform in the platform directory in which this SDK is located. e.g. macosx.

§name: String

The canonical name of the SDK. e.g. macosx12.3.

§default_deployment_target: String

Version of the default deployment target for this SDK.

This is likely the OS version the SDK came from. e.g. 12.3.

§default_variant: Option<String>

Name of default settings variant for this SDK.

Some SDKs have named variants defining targeting settings. This field holds the name of the default variant.

For example, macOS SDKs have a macos variant for targeting macOS and an iosmac variant for targeting iOS running on macOS.

§display_name: String

Human friendly name of this SDK.

e.g. macOS 12.3.

§maximum_deployment_target: String

Maximum deployment target version this SDK supports.

This is a very string denoting the maximum version this SDK can target. e.g. a 12.3 would list 12.3.99.

§minimal_display_name: String

Human friendly value for name (probably just version string).

A shortened display name. e.g. 12.3.

§supported_targets: HashMap<String, SupportedTarget>

Describes named target configurations this SDK supports.

SDKs can have multiple named targets defining pre-canned default targeting settings. This field holds these data structures.

Example keys are macosx and iosmac. Use the Self::default_variant field to access the default target.

Implementations§

Source§

impl ParsedSdk

Source

pub fn from_json( path: PathBuf, is_symlink: bool, platform: Platform, value: SdkSettingsJson, ) -> Result<Self, Error>

Construct an instance by parsing an SDKSettings.json file in a directory.

These files are only available in more modern SDKs. For macOS, that’s 10.14+. For more reliably SDK construction, use Self::from_plist().

Source

pub fn from_plist( path: PathBuf, is_symlink: bool, platform: Platform, value: Value, ) -> Result<Self, Error>

Construct an instance by parsing an SDKSettings.plist file in a directory.

Plist files are the legacy mechanism for defining SDK settings. JSON files are preferred, as they are newer. However, older SDKs lack SDKSettings.json files.

Trait Implementations§

Source§

impl AppleSdk for ParsedSdk

Source§

fn supports_deployment_target( &self, target_name: &str, target_version: &SdkVersion, ) -> Result<bool, Error>

Whether this SDK supports the given deployment target.

This API does not work reliably on SDKs loaded from plists because the plist metadata lacks the required version constraint annotations.

Source§

fn from_directory(path: &Path) -> Result<Self, Error>

Attempt to construct an instance from a filesystem directory. Read more
Whether this SDK path is a symlink.
Source§

fn platform(&self) -> &Platform

The platform this SDK is for.
Source§

fn version(&self) -> Option<&SdkVersion>

Obtain the version string for this SDK. Read more
Source§

fn find_in_directory(root: &Path) -> Result<Vec<Self>, Error>

Find Apple SDKs in a specified directory. Read more
Source§

fn find_command_line_tools_sdks() -> Result<Option<Vec<Self>>, Error>

Locate SDKs installed as part of the Xcode Command Line Tools. Read more
Source§

fn sdk_path(&self) -> SdkPath

Obtain an SdkPath represent this SDK.
Source§

fn as_sdk_path(&self) -> SdkPath

👎Deprecated since 0.1.1: plase use sdk_path instead
Source§

fn path(&self) -> &Path

Obtain the filesystem path to this SDK.
Source§

impl AsRef<Path> for ParsedSdk

Source§

fn as_ref(&self) -> &Path

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for ParsedSdk

Source§

fn clone(&self) -> ParsedSdk

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ParsedSdk

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl TryFrom<SimpleSdk> for ParsedSdk

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(v: SimpleSdk) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.