diff --git a/Source/Tools/Flax.Build/Platforms/Mac/MacToolchain.cs b/Source/Tools/Flax.Build/Platforms/Mac/MacToolchain.cs index 9173fc826..77f24782c 100644 --- a/Source/Tools/Flax.Build/Platforms/Mac/MacToolchain.cs +++ b/Source/Tools/Flax.Build/Platforms/Mac/MacToolchain.cs @@ -271,6 +271,7 @@ namespace Flax.Build.Platforms // Input libraries var libraryPaths = new HashSet(); + var dylibs = new HashSet(); foreach (var library in linkEnvironment.InputLibraries) { var dir = Path.GetDirectoryName(library); @@ -290,6 +291,7 @@ namespace Flax.Build.Platforms else if (ext == ".dylib") { // Link against dynamic library + dylibs.Add(library); task.PrerequisiteFiles.Add(library); libraryPaths.Add(dir); args.Add(string.Format("\"{0}\"", library)); @@ -319,6 +321,7 @@ namespace Flax.Build.Platforms else if (ext == ".dylib") { // Link against dynamic library + dylibs.Add(library); task.PrerequisiteFiles.Add(library); libraryPaths.Add(dir); args.Add(string.Format("\"{0}\"", library)); @@ -374,18 +377,16 @@ namespace Flax.Build.Platforms if (options.LinkEnv.Output == LinkerOutput.Executable) { // Fix rpath for dynamic libraries - foreach (var library in options.Libraries) + foreach (var library in dylibs) { - if (!library.EndsWith(".dylib")) - continue; var rpathTask = graph.Add(); rpathTask.ProducedFiles.Add(outputFilePath); rpathTask.WorkingDirectory = options.WorkingDirectory; rpathTask.CommandPath = "install_name_tool"; var filename = Path.GetFileName(library); var outputFolder = Path.GetDirectoryName(outputFilePath); - rpathTask.CommandArguments = string.Format("-change \"{0}/{1}\" \"@loader_path/{1}\"", outputFolder, filename); - rpathTask.InfoMessage = "Fixing rpath " + outputFilePath; + rpathTask.CommandArguments = string.Format("-change \"{0}/{1}\" \"@loader_path/{1}\" {2}", outputFolder, filename, outputFilePath); + rpathTask.InfoMessage = "Fixing rpath to " + filename; rpathTask.Cost = 1; rpathTask.DisableCache = true; rpathTask.DependentTasks = new HashSet();