diff --git a/Source/ThirdParty/mono-2.0/mono.Build.cs b/Source/ThirdParty/mono-2.0/mono.Build.cs index 7872a74b5..dff081910 100644 --- a/Source/ThirdParty/mono-2.0/mono.Build.cs +++ b/Source/ThirdParty/mono-2.0/mono.Build.cs @@ -68,7 +68,11 @@ public class mono : DepsModule break; } case TargetPlatform.Linux: - options.OutputFiles.Add(Path.Combine(depsRoot, "libmono-2.0.a")); + options.PrivateDefinitions.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.1")); + options.DependencyFiles.Add(Path.Combine(depsRoot, "libmonosgen-2.0.so.1.0.0")); + options.Libraries.Add(Path.Combine(depsRoot, "libmonosgen-2.0.so")); break; case TargetPlatform.PS4: options.OutputFiles.Add(Path.Combine(depsRoot, "libmono.a")); diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs b/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs index ca23d81ea..c983458ec 100644 --- a/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs +++ b/Source/Tools/Flax.Build/Deps/Dependencies/mono.cs @@ -536,24 +536,30 @@ namespace Flax.Deps.Dependencies { "CC", "clang-7" }, { "CXX", "clang++-7" } }; - var binaries = new[] + var monoOptions = new[] { - "lib/libmono-2.0.a", + "--with-xen-opt=no", + "--without-ikvm-native", + //"--disable-executables", + "--disable-boehm", + "--disable-mcs-build", + //"--enable-static", }; var buildDir = Path.Combine(root, "build-linux"); SetupDirectory(buildDir, true); var archName = UnixToolchain.GetToolchainName(platform, TargetArchitecture.x64); - Utilities.Run(Path.Combine(root, "autogen.sh"), string.Format("--host={0} --prefix={1} --disable-boehm --disable-mcs-build --enable-static", archName, buildDir), null, root, Utilities.RunOptions.Default, envVars); + Utilities.Run(Path.Combine(root, "autogen.sh"), string.Format("--host={0} --prefix={1} {2}", archName, buildDir, string.Join(" ", monoOptions)), null, root, Utilities.RunOptions.Default, envVars); Utilities.Run("make", null, null, root, Utilities.RunOptions.None, envVars); Utilities.Run("make", "install", null, root, Utilities.RunOptions.None, envVars); var depsFolder = GetThirdPartyFolder(options, platform, TargetArchitecture.x64); - foreach (var binary in binaries) - { - var src = Path.Combine(buildDir, binary); - var dst = Path.Combine(depsFolder, Path.GetFileName(binary)); - Utilities.FileCopy(src, dst); - } + Utilities.FileCopy(Path.Combine(buildDir, "lib", "libmonosgen-2.0.so.1.0.0"), Path.Combine(depsFolder, "libmonosgen-2.0.so.1.0.0")); + var gameLibOutput = Path.Combine(options.PlatformsFolder, "Linux", "Binaries", "Mono", "lib"); + Utilities.FileCopy(Path.Combine(buildDir, "lib", "libMonoPosixHelper.so"), Path.Combine(gameLibOutput, "libMonoPosixHelper.so")); + Utilities.FileCopy(Path.Combine(buildDir, "lib", "libmono-native.so"), Path.Combine(gameLibOutput, "libmono-native.so")); + var editorLibOutput = Path.Combine(options.PlatformsFolder, "Editor", "Linux", "Mono", "lib"); + Utilities.FileCopy(Path.Combine(buildDir, "lib", "libMonoPosixHelper.so"), Path.Combine(editorLibOutput, "libMonoPosixHelper.so")); + Utilities.FileCopy(Path.Combine(buildDir, "lib", "libmono-native.so"), Path.Combine(editorLibOutput, "libmono-native.so")); break; } case TargetPlatform.PS4: