public virtual void SelectPreprocessorDefinitionsVcxproj(IVcxprojGenerationContext context) { // concat defines, don't add options.Defines since they are automatically added by VS var defines = new Strings(); defines.AddRange(context.Options.ExplicitDefines); defines.AddRange(context.Configuration.Defines); context.Options["PreprocessorDefinitions"] = defines.JoinStrings(";"); }
public override void SelectLinkerOptions(IGenerationContext context) { var options = context.Options; var cmdLineOptions = context.CommandLineOptions; var conf = context.Configuration; context.SelectOption ( Sharpmake.Options.Option(Options.Linker.EchoCommandLines.Enable, () => { options["EchoCommandLinesLinker"] = "true"; }), Sharpmake.Options.Option(Options.Linker.EchoCommandLines.Disable, () => { options["EchoCommandLinesLinker"] = FileGeneratorUtilities.RemoveLineTag; }) ); // NvShieldOptions.Linker.AndroidSystemLibraries Strings androidSystemLibraries = Sharpmake.Options.GetStrings <Options.Linker.AndroidSystemLibraries>(conf); if (androidSystemLibraries.Count > 0) { options["AndroidSystemLibs"] = androidSystemLibraries.JoinStrings(";"); // TO DO implement for cmd cmdLineOptions["AndroidSystemLibs"] = FileGeneratorUtilities.RemoveLineTag; } else { options["AndroidSystemLibs"] = FileGeneratorUtilities.RemoveLineTag; cmdLineOptions["AndroidSystemLibs"] = FileGeneratorUtilities.RemoveLineTag; } context.SelectOption ( Sharpmake.Options.Option(Options.Linker.LinkAgainstThumbVersionOfLibGcc.Enable, () => { options["LinkGccLibThumb"] = "true"; }), Sharpmake.Options.Option(Options.Linker.LinkAgainstThumbVersionOfLibGcc.Disable, () => { options["LinkGccLibThumb"] = FileGeneratorUtilities.RemoveLineTag; }) ); context.SelectOption ( Sharpmake.Options.Option(Options.Linker.ReportUndefinedSymbols.Enable, () => { options["ReportUndefinedSymbols"] = FileGeneratorUtilities.RemoveLineTag; cmdLineOptions["ReportUndefinedSymbols"] = "-Wl,--no-undefined"; }), Sharpmake.Options.Option(Options.Linker.ReportUndefinedSymbols.Disable, () => { options["ReportUndefinedSymbols"] = "false"; cmdLineOptions["ReportUndefinedSymbols"] = FileGeneratorUtilities.RemoveLineTag; }) ); context.SelectOption ( Sharpmake.Options.Option(Options.Linker.LinkerType.Bfd, () => { options["UseLinker"] = FileGeneratorUtilities.RemoveLineTag; cmdLineOptions["UseLinker"] = "-fuse-ld=bfd"; }), Sharpmake.Options.Option(Options.Linker.LinkerType.Gold, () => { options["UseLinker"] = "false"; cmdLineOptions["UseLinker"] = "-fuse-ld=gold"; }) ); context.SelectOption ( Sharpmake.Options.Option(Options.Linker.ThinArchive.Enable, () => { options["ThinArchive"] = "true"; }), Sharpmake.Options.Option(Options.Linker.ThinArchive.Disable, () => { options["ThinArchive"] = FileGeneratorUtilities.RemoveLineTag; }) ); }