public sealed override bool Run(PackageTemplateGeneratorParameters parameters) { if (parameters == null) throw new ArgumentNullException(nameof(parameters)); parameters.Validate(); var logger = parameters.Logger; var name = parameters.Name; var package = parameters.Package; // Make sure we have a shared profile var sharedProfile = package.Profiles.FindSharedProfile(); if (sharedProfile == null) { sharedProfile = PackageProfile.NewShared(); package.Profiles.Add(sharedProfile); } // Log progress var projectName = name; ProjectTemplateGeneratorHelper.Progress(logger, $"Generating {projectName}...", 0, 1); // Generate the library List<string> generatedFiles; ProjectTemplateGeneratorHelper.AddOption(parameters, "Platforms", AssetRegistry.SupportedPlatforms); var projectGameRef = ProjectTemplateGeneratorHelper.GenerateTemplate(parameters, package, "ProjectLibrary/ProjectLibrary.ttproj", projectName, PlatformType.Shared, null, ProjectType.Library, out generatedFiles); projectGameRef.Type = ProjectType.Library; sharedProfile.ProjectReferences.Add(projectGameRef); // Log done ProjectTemplateGeneratorHelper.Progress(logger, "Done", 1, 1); return true; }
/// <summary> /// Creates a new Xenko package with the specified name /// </summary> /// <param name="name">Name of the package</param> /// <returns>A new package instance</returns> public static Package NewPackage(string name) { var package = new Package { Meta = { Name = name, Version = new PackageVersion("1.0.0.0") }, }; // Add dependency to latest Xenko package package.Meta.Dependencies.Add(XenkoConfig.GetLatestPackageDependency()); // Setup the assets folder by default package.Profiles.Add(PackageProfile.NewShared()); return(package); }