// Copyright (c) Wojciech Figat. All rights reserved. using System.Collections.Generic; using Flax.Build.NativeCpp; namespace Flax.Build { partial class Configuration { /// /// Specifies the minimum Mac OSX version to use (eg. 10.14). /// [CommandLine("macOSXMinVer", "", "Specifies the minimum Mac OSX version to use (eg. 10.14).")] public static string MacOSXMinVer = "10.15"; } } namespace Flax.Build.Platforms { /// /// The build toolchain for all Mac systems. /// /// public sealed class MacToolchain : AppleToolchain { /// /// Initializes a new instance of the class. /// /// The platform. /// The target architecture. public MacToolchain(MacPlatform platform, TargetArchitecture architecture) : base(platform, architecture, "MacOSX") { } /// public override void SetupEnvironment(BuildOptions options) { base.SetupEnvironment(options); options.CompileEnv.PreprocessorDefinitions.Add("PLATFORM_MAC"); // TODO: move this to the specific module configs (eg. Platform.Build.cs) options.LinkEnv.InputLibraries.Add("z"); options.LinkEnv.InputLibraries.Add("bz2"); options.LinkEnv.InputLibraries.Add("CoreFoundation.framework"); options.LinkEnv.InputLibraries.Add("CoreGraphics.framework"); options.LinkEnv.InputLibraries.Add("CoreMedia.framework"); options.LinkEnv.InputLibraries.Add("CoreVideo.framework"); options.LinkEnv.InputLibraries.Add("SystemConfiguration.framework"); options.LinkEnv.InputLibraries.Add("IOKit.framework"); options.LinkEnv.InputLibraries.Add("Cocoa.framework"); options.LinkEnv.InputLibraries.Add("QuartzCore.framework"); options.LinkEnv.InputLibraries.Add("AVFoundation.framework"); // SDL3 requires the following frameworks: options.LinkEnv.InputLibraries.Add("Foundation.framework"); options.LinkEnv.InputLibraries.Add("GameController.framework"); options.LinkEnv.InputLibraries.Add("Carbon.framework"); options.LinkEnv.InputLibraries.Add("ForceFeedback.framework"); options.LinkEnv.InputLibraries.Add("UniformTypeIdentifiers.framework"); options.LinkEnv.InputLibraries.Add("CoreHaptics.framework"); } protected override void AddArgsCommon(BuildOptions options, List args) { base.AddArgsCommon(options, args); args.Add("-mmacosx-version-min=" + Configuration.MacOSXMinVer); } } }