Add Vulkan support for Mac (via MoltenVK)
This commit is contained in:
@@ -28,6 +28,11 @@ namespace Flax.Deps.Dependencies
|
||||
{
|
||||
TargetPlatform.Linux,
|
||||
};
|
||||
case TargetPlatform.Mac:
|
||||
return new[]
|
||||
{
|
||||
TargetPlatform.Mac,
|
||||
};
|
||||
default: return new TargetPlatform[0];
|
||||
}
|
||||
}
|
||||
@@ -71,10 +76,10 @@ namespace Flax.Deps.Dependencies
|
||||
|
||||
// Build for Win64
|
||||
File.Delete(Path.Combine(buildDir, "CMakeCache.txt"));
|
||||
RunCmake(buildDir, TargetPlatform.Windows, TargetArchitecture.x64, cmakeArgs);
|
||||
RunCmake(buildDir, platform, TargetArchitecture.x64, cmakeArgs);
|
||||
Utilities.Run("cmake", string.Format("--build . --config {0} --target install", configuration), null, buildDir, Utilities.RunOptions.None);
|
||||
Deploy.VCEnvironment.BuildSolution(solutionPath, configuration, "x64");
|
||||
var depsFolder = GetThirdPartyFolder(options, TargetPlatform.Windows, TargetArchitecture.x64);
|
||||
var depsFolder = GetThirdPartyFolder(options, platform, TargetArchitecture.x64);
|
||||
foreach (var file in outputFiles)
|
||||
{
|
||||
Utilities.FileCopy(file, Path.Combine(depsFolder, Path.GetFileName(file)));
|
||||
@@ -97,10 +102,10 @@ namespace Flax.Deps.Dependencies
|
||||
};
|
||||
|
||||
// Build for Linux
|
||||
RunCmake(root, TargetPlatform.Linux, TargetArchitecture.x64, cmakeArgs);
|
||||
RunCmake(root, platform, TargetArchitecture.x64, cmakeArgs);
|
||||
Utilities.Run("cmake", string.Format("--build . --config {0} --target install", configuration), null, buildDir, Utilities.RunOptions.None);
|
||||
Utilities.Run("make", null, null, root, Utilities.RunOptions.None);
|
||||
var depsFolder = GetThirdPartyFolder(options, TargetPlatform.Linux, TargetArchitecture.x64);
|
||||
var depsFolder = GetThirdPartyFolder(options, platform, TargetArchitecture.x64);
|
||||
foreach (var file in outputFiles)
|
||||
{
|
||||
var dst = Path.Combine(depsFolder, Path.GetFileName(file));
|
||||
@@ -109,6 +114,34 @@ namespace Flax.Deps.Dependencies
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TargetPlatform.Mac:
|
||||
{
|
||||
var outputFiles = new[]
|
||||
{
|
||||
Path.Combine(libsRoot, "libGenericCodeGen.a"),
|
||||
Path.Combine(libsRoot, "libMachineIndependent.a"),
|
||||
Path.Combine(libsRoot, "libHLSL.a"),
|
||||
Path.Combine(libsRoot, "libOSDependent.a"),
|
||||
Path.Combine(libsRoot, "libOGLCompiler.a"),
|
||||
Path.Combine(libsRoot, "libSPIRV-Tools-opt.a"),
|
||||
Path.Combine(libsRoot, "libSPIRV-Tools.a"),
|
||||
Path.Combine(libsRoot, "libSPIRV.a"),
|
||||
Path.Combine(libsRoot, "libglslang.a"),
|
||||
};
|
||||
|
||||
// Build for Mac
|
||||
RunCmake(root, platform, TargetArchitecture.x64, cmakeArgs);
|
||||
Utilities.Run("cmake", string.Format("--build . --config {0} --target install", configuration), null, buildDir, Utilities.RunOptions.None);
|
||||
Utilities.Run("make", null, null, root, Utilities.RunOptions.None);
|
||||
var depsFolder = GetThirdPartyFolder(options, platform, TargetArchitecture.x64);
|
||||
foreach (var file in outputFiles)
|
||||
{
|
||||
var dst = Path.Combine(depsFolder, Path.GetFileName(file));
|
||||
Utilities.FileCopy(file, dst);
|
||||
Utilities.Run("strip", string.Format("\"{0}\"", dst), null, null, Utilities.RunOptions.None);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -114,6 +114,7 @@ namespace Flax.Build.Platforms
|
||||
options.LinkEnv.InputLibraries.Add("SystemConfiguration.framework");
|
||||
options.LinkEnv.InputLibraries.Add("IOKit.framework");
|
||||
options.LinkEnv.InputLibraries.Add("Cocoa.framework");
|
||||
options.LinkEnv.InputLibraries.Add("QuartzCore.framework");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
Reference in New Issue
Block a user