// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. using System; using System.IO; using Flax.Build.Projects; namespace Flax.Build.Platforms { /// /// The build platform for all Apple systems. /// /// public abstract class ApplePlatform : UnixPlatform { /// public override bool HasRequiredSDKsInstalled { get; } /// public override bool HasSharedLibrarySupport => true; /// public override string SharedLibraryFileExtension => ".dylib"; /// public override string ProgramDatabaseFileExtension => ".dSYM"; /// public override string SharedLibraryFilePrefix => string.Empty; /// public override ProjectFormat DefaultProjectFormat => ProjectFormat.XCode; /// /// Initializes a new instance of the class. /// public ApplePlatform() { if (Platform.BuildTargetPlatform != TargetPlatform.Mac) return; HasRequiredSDKsInstalled = XCode.Instance.IsValid; } public static void FixInstallNameId(string dylibPath) { Utilities.Run("install_name_tool", string.Format(" -id \"@rpath/{0}\" \"{1}\"", Path.GetFileName(dylibPath), dylibPath), null, null, Utilities.RunOptions.ThrowExceptionOnError); } } }