public GradleProjectGenerator(String SolutionName, Project Project, List <ProjectReference> ProjectReferences, PathString InputDirectory, PathString OutputDirectory, PathString SolutionOutputDirectory, String BuildGradleTemplateText, OperatingSystemType HostOperatingSystem, ArchitectureType HostArchitecture, OperatingSystemType TargetOperatingSystem, ArchitectureType?TargetArchitecture, ToolchainType Toolchain, CompilerType Compiler, CLibraryType CLibrary, CLibraryForm CLibraryForm, CppLibraryType CppLibrary, CppLibraryForm CppLibraryForm, ConfigurationType?ConfigurationType, PathString AndroidNdk)
 {
     this.SolutionName            = SolutionName;
     this.ProjectName             = Project.Name.Split(':').First();
     this.Project                 = Project;
     this.ProjectReferences       = ProjectReferences;
     this.InputDirectory          = InputDirectory.FullPath;
     this.OutputDirectory         = OutputDirectory.FullPath;
     this.SolutionOutputDirectory = SolutionOutputDirectory.FullPath;
     this.BuildGradleTemplateText = BuildGradleTemplateText;
     this.HostOperatingSystem     = HostOperatingSystem;
     this.HostArchitecture        = HostArchitecture;
     this.TargetOperatingSystem   = TargetOperatingSystem;
     this.TargetArchitecture      = TargetArchitecture;
     if (!TargetArchitecture.HasValue)
     {
         throw new NotSupportedException("ArchitectureTypeIsNull");
     }
     this.Toolchain         = Toolchain;
     this.Compiler          = Compiler;
     this.CLibrary          = CLibrary;
     this.CLibraryForm      = CLibraryForm;
     this.CppLibrary        = CppLibrary;
     this.CppLibraryForm    = CppLibraryForm;
     this.ConfigurationType = ConfigurationType;
     this.AndroidNdk        = AndroidNdk;
 }
        public override void Generate(
            string outputPath,
            PlatformType platformType,
            ToolchainType toolchainType,
            Solution solution,
            EvaluatedSolution[] evaluatedSolutions)
        {
            Directory.CreateDirectory(outputPath);

            var outputPrefix = $@"{solution.Name}-{platformType}-{toolchainType}";
            var baseFile     = Path.Combine(outputPath, $@"{outputPrefix}.bff");

            using var output = File.CreateText(baseFile);
            EmitGeneratedBanner(output);

            Trace.WriteLine($@"Generating {baseFile}");

            Trace.WriteLine(solution);
            Trace.Indent();

            output.WriteLine($@".CommandLineBuild = '{this.GetCommandLinePath()}'");

            foreach (var s in evaluatedSolutions)
            {
                EmitToolchainDefinition(output, s);
                EmitPlatformDefinitions(output, s);
                EmitProjectPlatformToolchainCommonPart(output, s);
            }

            foreach (var s in evaluatedSolutions)
            {
                Trace.WriteLine($@"Evaluated: {s.Platform.PlatformType}-{s.Platform.ArchitectureType}-{s.Toolchain.ToolchainType}");
                Trace.WriteLine($@"  - Generate platform/toolchain variables...");
                Trace.WriteLine($@"  - Generate architecture variables...");


                Trace.Indent();

                foreach (var r in s.ResolvedSolutions)
                {
                    output.WriteLine($@"; {r.TargetTuple}");
                    foreach (var t in r.Targets)
                    {
                        if (t.SourceTarget.TargetType == TargetType.HeaderLibrary)
                        {
                            continue;
                        }

                        //output.WriteLine("{");
                        EmitProjectDefinition(output, s, t);
                        //output.WriteLine("}");
                    }
                }

                Trace.Unindent();
            }

            Trace.Unindent();
        }
Ejemplo n.º 3
0
 public AndroidPlatformFactory(
     ArchitectureType architectureType,
     ToolchainType toolchainType)
     : base(
         PlatformType.Android,
         architectureType,
         toolchainType)
 {
 }
 public UniversalWindowsPlatformFactory(
     ArchitectureType architectureType,
     ToolchainType toolchainType)
     : base(
         PlatformType.UniversalWindows,
         architectureType,
         toolchainType)
 {
 }
 public LinuxPlatformFactory(
     ArchitectureType architectureType,
     ToolchainType toolchainType)
     : base(
         PlatformType.Linux,
         architectureType,
         toolchainType)
 {
 }
Ejemplo n.º 6
0
 public Make(ToolchainType Toolchain, CompilerType Compiler, OperatingSystemType TargetOperationSystem, String SourceDirectory, String BuildDirectory, bool EnableRebuild)
 {
     this.Toolchain               = Toolchain;
     this.Compiler                = Compiler;
     this.TargetOperationSystem   = TargetOperationSystem;
     this.SourceDirectory         = SourceDirectory;
     this.BuildDirectory          = BuildDirectory;
     this.EnableRebuild           = EnableRebuild;
     this.BuildingOperatingSystem = OperatingSystemType.Windows;
 }
Ejemplo n.º 7
0
 public CMakeProjectGenerator(Project Project, List <ProjectReference> ProjectReferences, String InputDirectory, String OutputDirectory, ToolchainType Toolchain, CompilerType Compiler, OperatingSystemType BuildingOperatingSystem, OperatingSystemType TargetOperatingSystem)
 {
     this.Project                 = Project;
     this.ProjectReferences       = ProjectReferences;
     this.InputDirectory          = InputDirectory;
     this.OutputDirectory         = OutputDirectory;
     this.Toolchain               = Toolchain;
     this.Compiler                = Compiler;
     this.BuildingOperatingSystem = BuildingOperatingSystem;
     this.TargetOperatingSystem   = TargetOperatingSystem;
 }
Ejemplo n.º 8
0
 public TargetTuple(
     PlatformType platformType,
     ArchitectureType architectureType,
     ToolchainType toolchainType,
     ConfigurationType configurationType,
     ConfigurationFlavour configurationFlavour)
 {
     this.PlatformType         = platformType;
     this.ArchitectureType     = architectureType;
     this.ToolchainType        = toolchainType;
     this.ConfigurationType    = configurationType;
     this.ConfigurationFlavour = configurationFlavour;
 }
Ejemplo n.º 9
0
 public NinjaProjectGenerator(Project Project, List <ProjectReference> ProjectReferences, PathString InputDirectory, PathString OutputDirectory, OperatingSystemType HostOperatingSystem, ArchitectureType HostArchitecture, OperatingSystemType TargetOperatingSystem, ArchitectureType TargetArchitecture, WindowsRuntimeType?WindowsRuntime, ToolchainType Toolchain, CompilerType Compiler, CLibraryType CLibrary, CLibraryForm CLibraryForm, CppLibraryType CppLibrary, CppLibraryForm CppLibraryForm, ConfigurationType ConfigurationType)
 {
     this.Project               = Project;
     this.ProjectReferences     = ProjectReferences;
     this.InputDirectory        = InputDirectory.FullPath;
     this.OutputDirectory       = OutputDirectory.FullPath;
     this.HostOperatingSystem   = HostOperatingSystem;
     this.HostArchitecture      = HostArchitecture;
     this.TargetOperatingSystem = TargetOperatingSystem;
     this.TargetArchitecture    = TargetArchitecture;
     this.WindowsRuntime        = WindowsRuntime;
     this.Toolchain             = Toolchain;
     this.Compiler              = Compiler;
     this.CLibrary              = CLibrary;
     this.CLibraryForm          = CLibraryForm;
     this.CppLibrary            = CppLibrary;
     this.CppLibraryForm        = CppLibraryForm;
     this.ConfigurationType     = ConfigurationType;
 }
 public AndroidBatchProjectGenerator(String SolutionName, Project Project, List <ProjectReference> ProjectReferences, PathString InputDirectory, PathString OutputDirectory, PathString SolutionOutputDirectory, OperatingSystemType HostOperatingSystem, ArchitectureType HostArchitecture, OperatingSystemType TargetOperatingSystem, ArchitectureType?TargetArchitecture, ToolchainType Toolchain, CompilerType Compiler, CLibraryType CLibrary, CLibraryForm CLibraryForm, CppLibraryType CppLibrary, CppLibraryForm CppLibraryForm, ConfigurationType?ConfigurationType, PathString Jdk, PathString AndroidSdk, PathString AndroidNdk, String BuildToolVersion, int MinSdkVersion, int TargetSdkVersion, PathString KeyStore, String KeyStorePass, String KeyAlias, String KeyPass, bool IsDebug)
 {
     this.SolutionName            = SolutionName;
     this.ProjectName             = Project.Name.Split(':').First();
     this.Project                 = Project;
     this.ProjectReferences       = ProjectReferences;
     this.InputDirectory          = InputDirectory.FullPath;
     this.OutputDirectory         = OutputDirectory.FullPath;
     this.SolutionOutputDirectory = SolutionOutputDirectory.FullPath;
     this.HostOperatingSystem     = HostOperatingSystem;
     this.HostArchitecture        = HostArchitecture;
     this.TargetOperatingSystem   = TargetOperatingSystem;
     if (!TargetArchitecture.HasValue)
     {
         throw new NotSupportedException("ArchitectureTypeIsNull");
     }
     this.TargetArchitecture = TargetArchitecture.Value;
     if (!ConfigurationType.HasValue)
     {
         throw new NotSupportedException("ConfigurationTypeIsNull");
     }
     this.Toolchain         = Toolchain;
     this.Compiler          = Compiler;
     this.CLibrary          = CLibrary;
     this.CLibraryForm      = CLibraryForm;
     this.CppLibrary        = CppLibrary;
     this.CppLibraryForm    = CppLibraryForm;
     this.ConfigurationType = ConfigurationType.Value;
     this.Jdk              = Jdk;
     this.AndroidSdk       = AndroidSdk;
     this.AndroidNdk       = AndroidNdk;
     this.BuildToolVersion = BuildToolVersion;
     this.MinSdkVersion    = MinSdkVersion;
     this.TargetSdkVersion = TargetSdkVersion;
     this.KeyStore         = KeyStore;
     this.KeyStorePass     = KeyStorePass;
     this.KeyAlias         = KeyAlias;
     this.KeyPass          = KeyPass;
     this.IsDebug          = IsDebug;
 }
Ejemplo n.º 11
0
 public override void Generate(string outputPath, PlatformType platformType, ToolchainType toolchainType, Solution solution, EvaluatedSolution[] evaluatedSolutions)
 {
 }