Ejemplo n.º 1
0
 public TrackedProject(string projName, bool isExtern, Project.Configuration.OutputType configOutputType)
 {
     ProjectString = projName;
     _isExtern     = isExtern;
     _project      = null;
     Configurations.Add(ProjectString, new TrackedConfiguration(this, configOutputType));
 }
Ejemplo n.º 2
0
 private void SetupExtraLinkerSettings(IFileGenerator fileGenerator, Project.Configuration.OutputType outputType)
 {
     using (fileGenerator.Resolver.NewScopedParameter("dllOption", outputType == Project.Configuration.OutputType.Dll ? " /DLL" : ""))
     {
         fileGenerator.Write(Bff.Template.ConfigurationFile.LinkerOptions);
     }
 }
Ejemplo n.º 3
0
 public string GetOutputFileNamePrefix(Project.Configuration.OutputType outputType)
 {
     if (outputType != Project.Configuration.OutputType.Exe)
     {
         return("lib");
     }
     return(string.Empty);
 }
Ejemplo n.º 4
0
        public TrackedConfiguration(TrackedProject owningProject, Project.Configuration.OutputType configOutputType)
        {
            _nodeVisited      = false;
            _owningProject    = owningProject;
            _dependenciesTo   = new SortedDictionary <TrackedConfiguration, Tuple <DependencyType, DependencySetting> >();
            _config           = null;
            _configOutputType = configOutputType;
            string cfgString = owningProject.ToString();

            _configTypeName = cfgString.Substring(cfgString.IndexOf(':') + 1);
        }
Ejemplo n.º 5
0
            public string GetOutputFileNamePrefix(Project.Configuration.OutputType outputType)
            {
                switch (outputType)
                {
                case Project.Configuration.OutputType.Exe:
                case Project.Configuration.OutputType.Dll:
                case Project.Configuration.OutputType.Lib:
                    return("lib");

                default:
                    return(string.Empty);
                }
            }
Ejemplo n.º 6
0
            // The below method was replaced by GetDefaultOutputFullExtension
            // string GetDefaultOutputExtension(OutputType outputType);

            public string GetDefaultOutputFullExtension(Project.Configuration.OutputType outputType)
            {
                switch (outputType)
                {
                case Project.Configuration.OutputType.Exe:
                    return(ExecutableFileFullExtension);

                case Project.Configuration.OutputType.Dll:
                    return(SharedLibraryFileFullExtension);

                default:
                    return(StaticLibraryFileFullExtension);
                }
            }
Ejemplo n.º 7
0
            public string GetDefaultOutputExtension(Project.Configuration.OutputType outputType)
            {
                switch (outputType)
                {
                case Project.Configuration.OutputType.Exe:
                    return(string.Empty);

                case Project.Configuration.OutputType.Dll:
                    return("so");

                default:
                    return("a");
                }
            }
Ejemplo n.º 8
0
        public string GetDefaultOutputExtension(Project.Configuration.OutputType outputType)
        {
            switch (outputType)
            {
            case Project.Configuration.OutputType.Exe:
            case Project.Configuration.OutputType.DotNetConsoleApp:
            case Project.Configuration.OutputType.DotNetWindowsApp:
                return(ExecutableFileExtension);

            case Project.Configuration.OutputType.Lib:
            case Project.Configuration.OutputType.Dll:
            case Project.Configuration.OutputType.DotNetClassLibrary:
                return(SharedLibraryFileExtension);

            case Project.Configuration.OutputType.None:
                return(string.Empty);

            default:
                throw new NotImplementedException("Please add extension for output type " + outputType);
            }
        }
Ejemplo n.º 9
0
        public string GetDefaultOutputExtension(Project.Configuration.OutputType outputType)
        {
            switch (outputType)
            {
            case Project.Configuration.OutputType.Exe:
            case Project.Configuration.OutputType.DotNetConsoleApp:
            case Project.Configuration.OutputType.DotNetWindowsApp:
                return("exe");

            case Project.Configuration.OutputType.Lib:
                return("lib");

            case Project.Configuration.OutputType.Dll:
            case Project.Configuration.OutputType.DotNetClassLibrary:
                return("dll");

            case Project.Configuration.OutputType.None:
                return(string.Empty);

            default:
                return(outputType.ToString().ToLower());
            }
        }
Ejemplo n.º 10
0
            public string GetDefaultOutputExtension(Project.Configuration.OutputType outputType)
            {
                switch (outputType)
                {
                // Using the Unix extensions since Darwin is a Unix implementation and the
                // executables Mac users interact with are actually bundles. If this causes
                // issues, see if using .app for executables and .dylib/.framework for
                // libraries work better. iOS is Darwin/Cocoa so assuming that the same goes
                // for it.
                case Project.Configuration.OutputType.Exe:
                case Project.Configuration.OutputType.IosApp:
                case Project.Configuration.OutputType.IosTestBundle:
                    return(string.Empty);

                case Project.Configuration.OutputType.Lib:
                    return("a");

                case Project.Configuration.OutputType.Dll:
                    return("so");

                // .NET remains the same on all platforms. (Mono loads .exe and .dll regardless
                // of platforms, and I assume the same about .NET Core.)
                case Project.Configuration.OutputType.DotNetConsoleApp:
                case Project.Configuration.OutputType.DotNetWindowsApp:
                    return("exe");

                case Project.Configuration.OutputType.DotNetClassLibrary:
                    return("dll");

                case Project.Configuration.OutputType.None:
                    return(string.Empty);

                default:
                    return(outputType.ToString().ToLower());
                }
            }
Ejemplo n.º 11
0
 public override void SetupExtraLinkerSettings(IFileGenerator fileGenerator, Project.Configuration.OutputType outputType, string fastBuildOutputFile)
 {
     base.SetupExtraLinkerSettings(fileGenerator, outputType, fastBuildOutputFile);
 }
Ejemplo n.º 12
0
            // Ideally the object files should be suffixed .o when compiling with FastBuild, using the CompilerOutputExtension property in ObjectLists

            public override string GetOutputFileNamePrefix(IGenerationContext context, Project.Configuration.OutputType outputType)
            {
                if (outputType != Project.Configuration.OutputType.Exe)
                {
                    return("lib");
                }
                return(string.Empty);
            }
Ejemplo n.º 13
0
            // CHEZ CHANGE begin: added GetOutputFileNamePrefix method.
            public override string GetOutputFileNamePrefix(IGenerationContext context, Project.Configuration.OutputType outputType)
            {
                switch (outputType)
                {
                case Project.Configuration.OutputType.Exe:
                    return(string.Empty);

                case Project.Configuration.OutputType.Dll:
                    return("lib");

                default:
                    return("lib");
                }
            }
Ejemplo n.º 14
0
 public virtual void SetupExtraLinkerSettings(IFileGenerator fileGenerator, Project.Configuration.OutputType outputType, string fastBuildOutputFile)
 {
     SetupExtraLinkerSettings(fileGenerator, outputType);
 }
Ejemplo n.º 15
0
 public virtual string GetOutputFileNamePrefix(IGenerationContext context, Project.Configuration.OutputType outputType)
 {
     return(string.Empty);
 }
Ejemplo n.º 16
0
 public virtual string GetOutputFilename(Project.Configuration.OutputType outputType, string fastBuildOutputFile) => fastBuildOutputFile;
Ejemplo n.º 17
0
        public void WriteNodeDescription(System.IO.StreamWriter stream, bool writeExternNodes, bool verbose, string prefix)
        {
            bool isExternProject = IsExtern();

            _nodeVisited = true;
            bool writeDescription = (isExternProject == writeExternNodes);

            if (writeDescription)
            {
                stream.Write("\t" + GetUniqueId() + "[label=<" + GetDisplayedName(verbose) + ">");

                string shape;
                if (isExternProject)
                {
                    shape = DependencyTracker.ShapeExtern;
                }
                else
                {
                    switch (_configOutputType)
                    {
                    case Project.Configuration.OutputType.Exe:
                    case Project.Configuration.OutputType.Dll:
                    case Project.Configuration.OutputType.Lib:
                        shape = DependencyTracker.ShapeProject;
                        break;

                    default:
                        shape = DependencyTracker.ShapeUnknown;
                        break;
                    }
                }

                string color;
                Project.Configuration.OutputType outputType = Project.Configuration.OutputType.None;

                if (_configOutputType != Project.Configuration.OutputType.None)
                {
                    outputType = _configOutputType;
                }
                else if (_config != null)
                {
                    // output type might be defined in inherited target class (this is the case for some extern project). Try to find it through reflection.
                    try
                    {
                        System.Type type = _config.Target.GetType();
                        System.Reflection.FieldInfo field = type.GetField("OutputType");
                        object fieldValue = field.GetValue(_config.Target);
                        switch (fieldValue.ToString())
                        {
                        case "Dll":
                            outputType = Project.Configuration.OutputType.Dll;
                            break;

                        case "Lib":
                            outputType = Project.Configuration.OutputType.Lib;
                            break;

                        case "Exe":
                            outputType = Project.Configuration.OutputType.Exe;
                            break;

                        default:
                            outputType = Project.Configuration.OutputType.None;
                            break;
                        }
                    }
                    catch { }
                }

                switch (outputType)
                {
                case Project.Configuration.OutputType.Exe:
                    color = isExternProject ? DependencyTracker.ColorExternExe : DependencyTracker.ColorExe;
                    break;

                case Project.Configuration.OutputType.Dll:
                    color = isExternProject ? DependencyTracker.ColorExternDll : DependencyTracker.ColorDll;
                    break;

                case Project.Configuration.OutputType.Lib:
                    color = isExternProject ? DependencyTracker.ColorExternLib : DependencyTracker.ColorLib;
                    break;

                default:
                    color = DependencyTracker.ColorUnkownOutputType;
                    break;
                }

                stream.WriteLine(" shape = " + shape + ", style=filled, fillcolor = " + color + ", fontsize=8, fontname=\"sans-serif\"]");
            }

            foreach (var dep in _dependenciesTo)
            {
                if (!dep.Key.IsNodeVisited())
                {
                    dep.Key.WriteNodeDescription(stream, writeExternNodes, verbose, prefix + " ");
                }
            }
        }
Ejemplo n.º 18
0
 public string GetOutputFileNamePrefix(Project.Configuration.OutputType outputType)
 {
     return(string.Empty);
 }