コード例 #1
0
 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;
 }
コード例 #2
0
        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();
        }
コード例 #3
0
 public AndroidPlatformFactory(
     ArchitectureType architectureType,
     ToolchainType toolchainType)
     : base(
         PlatformType.Android,
         architectureType,
         toolchainType)
 {
 }
コード例 #4
0
 public UniversalWindowsPlatformFactory(
     ArchitectureType architectureType,
     ToolchainType toolchainType)
     : base(
         PlatformType.UniversalWindows,
         architectureType,
         toolchainType)
 {
 }
コード例 #5
0
 public LinuxPlatformFactory(
     ArchitectureType architectureType,
     ToolchainType toolchainType)
     : base(
         PlatformType.Linux,
         architectureType,
         toolchainType)
 {
 }
コード例 #6
0
ファイル: Make.cs プロジェクト: rssqian/typemake
 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;
 }
コード例 #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;
 }
コード例 #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;
 }
コード例 #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;
 }
コード例 #10
0
 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;
 }
コード例 #11
0
 public override void Generate(string outputPath, PlatformType platformType, ToolchainType toolchainType, Solution solution, EvaluatedSolution[] evaluatedSolutions)
 {
 }