From 039f5f6e15b3e7819972fbab560b99bd867a95da Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 30 Dec 2021 16:30:38 +0100 Subject: [PATCH] Mac impl progress --- Source/Engine/Platform/Mac/MacWindow.cpp | 5 ++-- Source/ThirdParty/mono-2.0/mono.Build.cs | 6 ++++- Source/Tools/Flax.Build/Configuration.cs | 2 -- .../Flax.Build/Deps/Dependencies/mono.cs | 25 +++++++++++++++++++ 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/Source/Engine/Platform/Mac/MacWindow.cpp b/Source/Engine/Platform/Mac/MacWindow.cpp index 8f9180ddd..7f2c70c32 100644 --- a/Source/Engine/Platform/Mac/MacWindow.cpp +++ b/Source/Engine/Platform/Mac/MacWindow.cpp @@ -63,7 +63,6 @@ MacWindow::MacWindow(const CreateWindowSettings& settings) window.title = (__bridge NSString*)MacUtils::ToString(settings.Title); [window setWindow:this]; [window setReleasedWhenClosed:NO]; - [window setBackgroundColor:[NSColor blueColor]]; [window setMinSize:NSMakeSize(settings.MinimumSize.X, settings.MinimumSize.Y)]; [window setMaxSize:NSMakeSize(settings.MaximumSize.X, settings.MaximumSize.Y)]; [window setOpaque:!settings.SupportsTransparency]; @@ -169,8 +168,8 @@ bool MacWindow::IsForegroundWindow() const void MacWindow::BringToFront(bool force) { - NSWindow* window = (NSWindow*)_window; - [window activateIgnoringOtherApps:force]; + Focus(); + [NSApp activateIgnoringOtherApps: NO]; } void MacWindow::SetIsFullscreen(bool isFullscreen) diff --git a/Source/ThirdParty/mono-2.0/mono.Build.cs b/Source/ThirdParty/mono-2.0/mono.Build.cs index e533811e6..25a035e33 100644 --- a/Source/ThirdParty/mono-2.0/mono.Build.cs +++ b/Source/ThirdParty/mono-2.0/mono.Build.cs @@ -71,7 +71,6 @@ public class mono : DepsModule break; } case TargetPlatform.Linux: - case TargetPlatform.Mac: options.PublicDefinitions.Add("USE_MONO_DYNAMIC_LIB"); options.DependencyFiles.Add(Path.Combine(depsRoot, "libmonosgen-2.0.so")); options.Libraries.Add(Path.Combine(depsRoot, "libmonosgen-2.0.so")); @@ -91,6 +90,11 @@ public class mono : DepsModule case TargetPlatform.Switch: options.OutputFiles.Add(Path.Combine(depsRoot, "libmonosgen-2.0.a")); break; + case TargetPlatform.Mac: + options.PublicDefinitions.Add("USE_MONO_DYNAMIC_LIB"); + options.DependencyFiles.Add(Path.Combine(depsRoot, "libmonosgen-2.0.dylib")); + options.Libraries.Add(Path.Combine(depsRoot, "libmonosgen-2.0.dylib")); + break; default: throw new InvalidPlatformException(options.Platform.Target); } diff --git a/Source/Tools/Flax.Build/Configuration.cs b/Source/Tools/Flax.Build/Configuration.cs index b4cad184e..7abd39e09 100644 --- a/Source/Tools/Flax.Build/Configuration.cs +++ b/Source/Tools/Flax.Build/Configuration.cs @@ -234,8 +234,6 @@ namespace Flax.Build { if (options.Platform.Target == TargetPlatform.PS5) return false; // TODO: mono for ps5 - if (options.Platform.Target == TargetPlatform.Mac) - return false; // TODO: mono for Mac return UseCSharp || options.Target.IsEditor; } } diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs b/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs index a70f5263a..eb7672deb 100644 --- a/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs +++ b/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs @@ -40,6 +40,11 @@ namespace Flax.Deps.Dependencies TargetPlatform.Linux, TargetPlatform.Android, }; + case TargetPlatform.Mac: + return new[] + { + TargetPlatform.Mac, + }; default: return new TargetPlatform[0]; } } @@ -707,6 +712,26 @@ namespace Flax.Deps.Dependencies method.Invoke(null, new object[] { root, options }); break; } + case TargetPlatform.Mac: + { + var monoOptions = new[] + { + "--with-xen-opt=no", + "--without-ikvm-native", + "--disable-boehm", + "--disable-nls", + "--disable-iconv", + //"--disable-mcs-build", + "--with-mcs-docs=no", + "--with-tls=pthread", + //"--enable-static", + "--enable-maintainer-mode", + }; + var buildDir = Path.Combine(root, "build-mac"); + + // Build mono + break; + } } } }