diff --git a/Source/Tools/Flax.Build/Platforms/Apple/AppleToolchain.cs b/Source/Tools/Flax.Build/Platforms/Apple/AppleToolchain.cs index 8d17a2d99..bf7c0988c 100644 --- a/Source/Tools/Flax.Build/Platforms/Apple/AppleToolchain.cs +++ b/Source/Tools/Flax.Build/Platforms/Apple/AppleToolchain.cs @@ -378,6 +378,23 @@ namespace Flax.Build.Platforms lastTask = rpathTask; } } + else if (options.LinkEnv.Output == LinkerOutput.SharedLibrary) + { + // Fix rpath for dynamic library + var rpathTask = graph.Add(); + rpathTask.ProducedFiles.Add(outputFilePath); + rpathTask.WorkingDirectory = Path.GetDirectoryName(outputFilePath); + rpathTask.CommandPath = "install_name_tool"; + var filename = Path.GetFileName(outputFilePath); + rpathTask.CommandArguments = string.Format("-id \"@rpath/{0}\" \"{0}\"", filename); + rpathTask.InfoMessage = "Fixing rpath id " + filename; + rpathTask.Cost = 1; + rpathTask.DisableCache = true; + rpathTask.DependentTasks = new HashSet(); + rpathTask.DependentTasks.Add(lastTask); + lastTask = rpathTask; + } + // TODO: fix dylib ID: 'install_name_tool -id @rpath/FlaxGame.dylib FlaxGame.dylib' if (!options.LinkEnv.DebugInformation) { // Strip debug symbols