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
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