Add support for dotnet7 on macOS

This commit is contained in:
2023-02-19 13:03:12 +01:00
parent 30fa911832
commit c18cefbb0b
4 changed files with 30 additions and 11 deletions
+2 -3
View File
@@ -10,8 +10,7 @@ if [ $testfilesize -le 1000 ]; then
fi fi
# Compile the build tool. # 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. # 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 "$@" Binaries/Tools/Flax.Build "$@"
mono Binaries/Tools/Flax.Build.exe "$@"
+2 -2
View File
@@ -2,7 +2,7 @@
# Copyright (c) 2012-2023 Wojciech Figat. All rights reserved # Copyright (c) 2012-2023 Wojciech Figat. All rights reserved
# Fix mono bin to be in a path # 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 $*" echo "Running Flax.Build $*"
mono Binaries/Tools/Flax.Build.exe "$@" Binaries/Tools/Flax.Build "$@"
+6 -1
View File
@@ -42,7 +42,12 @@ bool CoreCLR::InitHostfxr(const String& configPath, const String& libraryPath)
get_hostfxr_parameters get_hostfxr_params; get_hostfxr_parameters get_hostfxr_params;
get_hostfxr_params.size = sizeof(hostfxr_initialize_parameters); get_hostfxr_params.size = sizeof(hostfxr_initialize_parameters);
get_hostfxr_params.assembly_path = library_path.Get(); 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]; char_t hostfxrPath[1024];
size_t hostfxrPathSize = sizeof(hostfxrPath) / sizeof(char_t); size_t hostfxrPathSize = sizeof(hostfxrPath) / sizeof(char_t);
int rc = get_hostfxr_path(hostfxrPath, &hostfxrPathSize, &get_hostfxr_params); int rc = get_hostfxr_path(hostfxrPath, &hostfxrPathSize, &get_hostfxr_params);
@@ -210,12 +210,27 @@ namespace Flax.Build
break; break;
} }
case TargetPlatform.Mac: case TargetPlatform.Mac:
monoRoot = Path.Combine(Globals.EngineRoot, "Source", "Platforms", "Editor", "Mac", "Mono"); {
monoPath = Path.Combine(monoRoot, "bin", "mono"); #if USE_NETCORE
cscPath = Path.Combine(monoRoot, "lib", "mono", "4.5", "csc.exe"); var dotnetSdk = DotNetSdk.Instance;
referenceAssemblies = Path.Combine(monoRoot, "lib", "mono", "4.5-api"); if (dotnetSdk.IsValid)
referenceAnalyzers = ""; {
// 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; break;
}
default: throw new InvalidPlatformException(buildPlatform); default: throw new InvalidPlatformException(buildPlatform);
} }