From 5ccc33719e8bdd08db373288a6f40d54da7dd629 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 26 Mar 2026 10:47:52 +0100 Subject: [PATCH] Add basis universal and Web build support for macOS --- Source/Editor/Windows/GameCookerWindow.cs | 1 + .../Binaries/ThirdParty/ARM64/libbasisu_encoder.a | 3 +++ .../Mac/Binaries/ThirdParty/x64/libbasisu_encoder.a | 3 +++ .../basis_universal/basis_universal.Build.cs | 1 + .../Flax.Build/Deps/Dependencies/basis_universal.cs | 12 ++++++++++++ .../Tools/Flax.Build/Platforms/Web/WebToolchain.cs | 3 ++- 6 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 Source/Platforms/Mac/Binaries/ThirdParty/ARM64/libbasisu_encoder.a create mode 100644 Source/Platforms/Mac/Binaries/ThirdParty/x64/libbasisu_encoder.a diff --git a/Source/Editor/Windows/GameCookerWindow.cs b/Source/Editor/Windows/GameCookerWindow.cs index 72e094f7e..bfbbad0ac 100644 --- a/Source/Editor/Windows/GameCookerWindow.cs +++ b/Source/Editor/Windows/GameCookerWindow.cs @@ -137,6 +137,7 @@ namespace FlaxEditor.Windows case BuildPlatform.MacOSARM64: case BuildPlatform.iOSARM64: case BuildPlatform.AndroidARM64: + case BuildPlatform.Web: IsSupported = true; break; default: diff --git a/Source/Platforms/Mac/Binaries/ThirdParty/ARM64/libbasisu_encoder.a b/Source/Platforms/Mac/Binaries/ThirdParty/ARM64/libbasisu_encoder.a new file mode 100644 index 000000000..2ffc7a6c6 --- /dev/null +++ b/Source/Platforms/Mac/Binaries/ThirdParty/ARM64/libbasisu_encoder.a @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c4199f63a716201c37c5400533eda9a27b007b4e7f56022fb21d6c2a5e3943e +size 3723880 diff --git a/Source/Platforms/Mac/Binaries/ThirdParty/x64/libbasisu_encoder.a b/Source/Platforms/Mac/Binaries/ThirdParty/x64/libbasisu_encoder.a new file mode 100644 index 000000000..fa4c488ae --- /dev/null +++ b/Source/Platforms/Mac/Binaries/ThirdParty/x64/libbasisu_encoder.a @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fe9b33e55c716f186b428fcc2dd0e78be9fc4a0e601b2cef6a46cf0e0ec0eb4 +size 4002536 diff --git a/Source/ThirdParty/basis_universal/basis_universal.Build.cs b/Source/ThirdParty/basis_universal/basis_universal.Build.cs index 5ae336f3f..d3b88ccdd 100644 --- a/Source/ThirdParty/basis_universal/basis_universal.Build.cs +++ b/Source/ThirdParty/basis_universal/basis_universal.Build.cs @@ -18,6 +18,7 @@ public class basis_universal : EngineDepsModule case TargetPlatform.Windows: case TargetPlatform.Web: case TargetPlatform.Linux: + case TargetPlatform.Mac: return true; default: return false; diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/basis_universal.cs b/Source/Tools/Flax.Build/Deps/Dependencies/basis_universal.cs index 50f4aa84c..b56cbb83d 100644 --- a/Source/Tools/Flax.Build/Deps/Dependencies/basis_universal.cs +++ b/Source/Tools/Flax.Build/Deps/Dependencies/basis_universal.cs @@ -30,6 +30,11 @@ namespace Flax.Deps.Dependencies { TargetPlatform.Linux, }; + case TargetPlatform.Mac: + return new[] + { + TargetPlatform.Mac, + }; default: return new TargetPlatform[0]; } @@ -55,6 +60,12 @@ namespace Flax.Deps.Dependencies { TargetArchitecture.x64, }; + case TargetPlatform.Mac: + return new[] + { + TargetArchitecture.x64, + TargetArchitecture.ARM64, + }; default: return new TargetArchitecture[0]; } @@ -137,6 +148,7 @@ namespace Flax.Deps.Dependencies break; } case TargetPlatform.Linux: + case TargetPlatform.Mac: { cmakeArgs = ".. " + cmakeArgs; RunCmake(buildDir, platform, architecture, cmakeArgs); diff --git a/Source/Tools/Flax.Build/Platforms/Web/WebToolchain.cs b/Source/Tools/Flax.Build/Platforms/Web/WebToolchain.cs index 1b1d7c763..ee086c2b9 100644 --- a/Source/Tools/Flax.Build/Platforms/Web/WebToolchain.cs +++ b/Source/Tools/Flax.Build/Platforms/Web/WebToolchain.cs @@ -115,6 +115,8 @@ namespace Flax.Build.Platforms private void AddSharedArgs(List args, BuildOptions options, bool debugInformation, bool optimization) { + args.Add("-Wno-experimental"); + if (debugInformation) args.Add("-g2"); else @@ -289,7 +291,6 @@ namespace Flax.Build.Platforms args.AddRange(options.LinkEnv.CustomArgs); { args.Add(string.Format("-o \"{0}\"", outputFilePath.Replace('\\', '/'))); - args.Add("-Wno-experimental"); // Debug options //args.Add("--minify=0");