コード例 #1
0
ファイル: BasePlatform.cs プロジェクト: mafaucher/Sharpmake
        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(";");
        }
コード例 #2
0
            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; })
                );
            }