| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| file LICENSE.rst or https://cmake.org/licensing for details. */ | |
| #pragma once | |
| #include <string> | |
| #include <vector> | |
| #include <cm/optional> | |
| #include "cmListFileCache.h" | |
| class cmMakefile; | |
| enum class cmXcFrameworkPlistSupportedPlatform | |
| { | |
| macOS, | |
| iOS, | |
| tvOS, | |
| watchOS, | |
| visionOS, | |
| }; | |
| enum class cmXcFrameworkPlistSupportedPlatformVariant | |
| { | |
| maccatalyst, | |
| simulator, | |
| }; | |
| struct cmXcFrameworkPlistLibrary | |
| { | |
| std::string LibraryIdentifier; | |
| std::string LibraryPath; | |
| std::string HeadersPath; | |
| std::vector<std::string> SupportedArchitectures; | |
| cmXcFrameworkPlistSupportedPlatform SupportedPlatform; | |
| cm::optional<cmXcFrameworkPlistSupportedPlatformVariant> | |
| SupportedPlatformVariant; | |
| }; | |
| struct cmXcFrameworkPlist | |
| { | |
| std::string Path; | |
| std::vector<cmXcFrameworkPlistLibrary> AvailableLibraries; | |
| cmXcFrameworkPlistLibrary const* SelectSuitableLibrary( | |
| cmMakefile const& mf, | |
| cmListFileBacktrace const& bt = cmListFileBacktrace{}) const; | |
| }; | |
| /** | |
| * Parses Plist file of .xcframework. | |
| * Expects normalized path as input | |
| */ | |
| cm::optional<cmXcFrameworkPlist> cmParseXcFrameworkPlist( | |
| std::string const& xcframeworkPath, cmMakefile const& mf, | |
| cmListFileBacktrace const& bt = cmListFileBacktrace{}); |