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: StringThe 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: StringThe canonical name of the SDK. e.g. macosx12.3.
default_deployment_target: StringVersion 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: StringHuman friendly name of this SDK.
e.g. macOS 12.3.
maximum_deployment_target: StringMaximum 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: StringHuman 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
impl ParsedSdk
Sourcepub fn from_json(
path: PathBuf,
is_symlink: bool,
platform: Platform,
value: SdkSettingsJson,
) -> Result<Self, Error>
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().
Sourcepub fn from_plist(
path: PathBuf,
is_symlink: bool,
platform: Platform,
value: Value,
) -> Result<Self, Error>
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
impl AppleSdk for ParsedSdk
Source§fn supports_deployment_target(
&self,
target_name: &str,
target_version: &SdkVersion,
) -> Result<bool, Error>
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>
fn from_directory(path: &Path) -> Result<Self, Error>
Source§fn is_symlink(&self) -> bool
fn is_symlink(&self) -> bool
Source§fn find_in_directory(root: &Path) -> Result<Vec<Self>, Error>
fn find_in_directory(root: &Path) -> Result<Vec<Self>, Error>
Source§fn find_command_line_tools_sdks() -> Result<Option<Vec<Self>>, Error>
fn find_command_line_tools_sdks() -> Result<Option<Vec<Self>>, Error>
Source§fn as_sdk_path(&self) -> SdkPath
fn as_sdk_path(&self) -> SdkPath
sdk_path instead