AvalonStudio.Toolchains.Clang.ClangGCCToolchain.GetLinkerArguments C# (CSharp) Method

GetLinkerArguments() public method

public GetLinkerArguments ( IStandardProject project ) : string
project IStandardProject
return string
		public override string GetLinkerArguments(IStandardProject project)
		{
			var settings = GetSettings(project);

			var result = string.Empty;

			result += string.Format("{0} ", settings.LinkSettings.MiscLinkerArguments);

			switch (settings.CompileSettings.Fpu)
			{
				case FPUSupport.Soft:
					result += " -mfpu=fpv4-sp-d16 -mfloat-abi=softfp ";
					break;

				case FPUSupport.Hard:
					result += " -mfpu=fpv4-sp-d16 -mfloat-abi=hard ";
					break;
			}

			if (settings.LinkSettings.NotUseStandardStartupFiles)
			{
				result += "-nostartfiles ";
			}

			if (settings.LinkSettings.DiscardUnusedSections)
			{
				result += "-Wl,--gc-sections ";
			}

			switch (settings.CompileSettings.Optimization)
			{
				case OptimizationLevel.None:
					result += " -O0";
					break;

				case OptimizationLevel.Level1:
					result += " -O1";
					break;

				case OptimizationLevel.Level2:
					result += " -O2";
					break;

				case OptimizationLevel.Level3:
					result += " -O3";
					break;
			}

			result += string.Format(" -L{0} -Wl,-T\"{1}\"", project.CurrentDirectory, GetLinkerScriptLocation(project));

			return result;
		}