Mac impl progress

This commit is contained in:
Wojtek Figat
2021-12-30 16:30:38 +01:00
parent d0d9bf751d
commit 039f5f6e15
4 changed files with 32 additions and 6 deletions

View File

@@ -63,7 +63,6 @@ MacWindow::MacWindow(const CreateWindowSettings& settings)
window.title = (__bridge NSString*)MacUtils::ToString(settings.Title); window.title = (__bridge NSString*)MacUtils::ToString(settings.Title);
[window setWindow:this]; [window setWindow:this];
[window setReleasedWhenClosed:NO]; [window setReleasedWhenClosed:NO];
[window setBackgroundColor:[NSColor blueColor]];
[window setMinSize:NSMakeSize(settings.MinimumSize.X, settings.MinimumSize.Y)]; [window setMinSize:NSMakeSize(settings.MinimumSize.X, settings.MinimumSize.Y)];
[window setMaxSize:NSMakeSize(settings.MaximumSize.X, settings.MaximumSize.Y)]; [window setMaxSize:NSMakeSize(settings.MaximumSize.X, settings.MaximumSize.Y)];
[window setOpaque:!settings.SupportsTransparency]; [window setOpaque:!settings.SupportsTransparency];
@@ -169,8 +168,8 @@ bool MacWindow::IsForegroundWindow() const
void MacWindow::BringToFront(bool force) void MacWindow::BringToFront(bool force)
{ {
NSWindow* window = (NSWindow*)_window; Focus();
[window activateIgnoringOtherApps:force]; [NSApp activateIgnoringOtherApps: NO];
} }
void MacWindow::SetIsFullscreen(bool isFullscreen) void MacWindow::SetIsFullscreen(bool isFullscreen)

View File

@@ -71,7 +71,6 @@ public class mono : DepsModule
break; break;
} }
case TargetPlatform.Linux: case TargetPlatform.Linux:
case TargetPlatform.Mac:
options.PublicDefinitions.Add("USE_MONO_DYNAMIC_LIB"); options.PublicDefinitions.Add("USE_MONO_DYNAMIC_LIB");
options.DependencyFiles.Add(Path.Combine(depsRoot, "libmonosgen-2.0.so")); options.DependencyFiles.Add(Path.Combine(depsRoot, "libmonosgen-2.0.so"));
options.Libraries.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: case TargetPlatform.Switch:
options.OutputFiles.Add(Path.Combine(depsRoot, "libmonosgen-2.0.a")); options.OutputFiles.Add(Path.Combine(depsRoot, "libmonosgen-2.0.a"));
break; 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); default: throw new InvalidPlatformException(options.Platform.Target);
} }

View File

@@ -234,8 +234,6 @@ namespace Flax.Build
{ {
if (options.Platform.Target == TargetPlatform.PS5) if (options.Platform.Target == TargetPlatform.PS5)
return false; // TODO: mono for ps5 return false; // TODO: mono for ps5
if (options.Platform.Target == TargetPlatform.Mac)
return false; // TODO: mono for Mac
return UseCSharp || options.Target.IsEditor; return UseCSharp || options.Target.IsEditor;
} }
} }

View File

@@ -40,6 +40,11 @@ namespace Flax.Deps.Dependencies
TargetPlatform.Linux, TargetPlatform.Linux,
TargetPlatform.Android, TargetPlatform.Android,
}; };
case TargetPlatform.Mac:
return new[]
{
TargetPlatform.Mac,
};
default: return new TargetPlatform[0]; default: return new TargetPlatform[0];
} }
} }
@@ -707,6 +712,26 @@ namespace Flax.Deps.Dependencies
method.Invoke(null, new object[] { root, options }); method.Invoke(null, new object[] { root, options });
break; 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;
}
} }
} }
} }