Add support for dotnet7 on macOS

This commit is contained in:
Wojtek Figat
2023-02-19 13:03:12 +01:00
parent 30fa911832
commit c18cefbb0b
4 changed files with 30 additions and 11 deletions

View File

@@ -10,8 +10,7 @@ if [ $testfilesize -le 1000 ]; then
fi
# Compile the build tool.
xbuild /nologo /verbosity:quiet "Source/Tools/Flax.Build/Flax.Build.csproj" /property:Configuration=Release /property:Platform=AnyCPU /target:Build
dotnet msbuild /nologo /verbosity:quiet "Source/Tools/Flax.Build/Flax.Build.csproj" /property:Configuration=Release /target:Restore,Build /property:RestorePackagesConfig=True /p:RuntimeIdentifiers=osx-x64
# Run the build tool using the provided arguments.
#mono --debug --debugger-agent=transport=dt_socket,server=y,address=127.0.0.1:55555 Binaries/Tools/Flax.Build.exe "$@"
mono Binaries/Tools/Flax.Build.exe "$@"
Binaries/Tools/Flax.Build "$@"

View File

@@ -2,7 +2,7 @@
# Copyright (c) 2012-2023 Wojciech Figat. All rights reserved
# Fix mono bin to be in a path
export PATH=/Library/Frameworks/Mono.framework/Versions/Current/Commands:$PATH
#export PATH=/Library/Frameworks/Mono.framework/Versions/Current/Commands:$PATH
echo "Running Flax.Build $*"
mono Binaries/Tools/Flax.Build.exe "$@"
Binaries/Tools/Flax.Build "$@"

View File

@@ -42,7 +42,12 @@ bool CoreCLR::InitHostfxr(const String& configPath, const String& libraryPath)
get_hostfxr_parameters get_hostfxr_params;
get_hostfxr_params.size = sizeof(hostfxr_initialize_parameters);
get_hostfxr_params.assembly_path = library_path.Get();
get_hostfxr_params.dotnet_root = nullptr;//dotnetRoot.Get();
// TODO: implement proper lookup for dotnet instalation folder and handle standalone build of FlaxGame
#if PLATFORM_MAC
get_hostfxr_params.dotnet_root = "/usr/local/share/dotnet";
#else
get_hostfxr_params.dotnet_root = nullptr;
#endif
char_t hostfxrPath[1024];
size_t hostfxrPathSize = sizeof(hostfxrPath) / sizeof(char_t);
int rc = get_hostfxr_path(hostfxrPath, &hostfxrPathSize, &get_hostfxr_params);

View File

@@ -210,12 +210,27 @@ namespace Flax.Build
break;
}
case TargetPlatform.Mac:
monoRoot = Path.Combine(Globals.EngineRoot, "Source", "Platforms", "Editor", "Mac", "Mono");
monoPath = Path.Combine(monoRoot, "bin", "mono");
cscPath = Path.Combine(monoRoot, "lib", "mono", "4.5", "csc.exe");
referenceAssemblies = Path.Combine(monoRoot, "lib", "mono", "4.5-api");
referenceAnalyzers = "";
{
#if USE_NETCORE
var dotnetSdk = DotNetSdk.Instance;
if (dotnetSdk.IsValid)
{
// Use dotnet
cscPath = @$"{dotnetSdk.RootPath}sdk/{dotnetSdk.VersionName}/Roslyn/bincore/csc.dll";
referenceAssemblies = @$"{dotnetSdk.RootPath}shared/Microsoft.NETCore.App/{dotnetSdk.RuntimeVersionName}/";
referenceAnalyzers = @$"{dotnetSdk.RootPath}packs/Microsoft.NETCore.App.Ref/{dotnetSdk.RuntimeVersionName}/analyzers/dotnet/cs/";
}
else
#endif
{
monoRoot = Path.Combine(Globals.EngineRoot, "Source", "Platforms", "Editor", "Mac", "Mono");
monoPath = Path.Combine(monoRoot, "bin", "mono");
cscPath = Path.Combine(monoRoot, "lib", "mono", "4.5", "csc.exe");
referenceAssemblies = Path.Combine(monoRoot, "lib", "mono", "4.5-api");
referenceAnalyzers = "";
}
break;
}
default: throw new InvalidPlatformException(buildPlatform);
}