internal static AssemblyDefinition CreateAssemblyFolder(string parentFolder, string folderName, string packageName, bool testFolder, bool editor, List <string> references) { string name = packageName + "." + folderName + (testFolder ? ".Tests" : ""); string folder = AssetDatabaseUtilities.CreateFolder(parentFolder, folderName); AssemblyDefinition def = new AssemblyDefinition(); def.name = name; if (editor) { def.includePlatforms.Add("Editor"); } if (references != null) { def.references.AddRange(references); } if (testFolder) { def.optionalUnityReferences.Add("TestAssemblies"); } AssetDatabaseUtilities.CreateJSONFile(def, folder, def.name + Paths.AssemblyDefinitionExtension); return(def); }
internal static void CreatePackage(PackageManifest manifest) { manifest.OnBeforeSerialize(); try { AssetDatabase.StartAssetEditing(); string PackageFolderName = manifest.package_name; string packageFolder = AssetDatabaseUtilities.CreateFolder(AssetDatabaseUtilities.GetRelativeToProjectRoot(Paths.PackagesFolder), PackageFolderName); AssemblyDefinition runtime = AssetDatabaseUtilities.CreateAssemblyFolder(packageFolder, Paths.RuntimeFolder, manifest.name, false, false, null); AssemblyDefinition editor = AssetDatabaseUtilities.CreateAssemblyFolder(packageFolder, Paths.EditorFolder, manifest.name, false, true, new List<string>{ runtime.name }); string testFolder = AssetDatabaseUtilities.CreateFolder(packageFolder, Paths.TestFolder); AssemblyDefinition runtimeTests = AssetDatabaseUtilities.CreateAssemblyFolder(testFolder, Paths.RuntimeFolder, manifest.name, true, false, new List<string> { runtime.name }); AssetDatabaseUtilities.CreateAssemblyFolder(testFolder, Paths.EditorFolder, manifest.name, true, true, new List<string> { runtime.name, editor.name }); AssetDatabaseUtilities.CreateJSONFile(manifest, packageFolder, Paths.PackageManifest); AssetDatabaseUtilities.CreateTextFile(CreateReadme(manifest), packageFolder, Paths.Readme); AssetDatabaseUtilities.CreateTextFile(CreateLicense(manifest), packageFolder, Paths.License); AssetDatabaseUtilities.CreateTextFile(CreateChangelog(manifest), packageFolder, Paths.Changelog); } finally { AssetDatabase.StopAssetEditing(); AssetDatabaseUtilities.UpdateAssetDatabase(); } }
internal static AssemblyDefinition CreateAssemblyFolder(string parentFolder, string folderName, string packageName, bool testFolder, bool editor, List <string> references) { string name = packageName + "." + folderName + (testFolder ? ".Tests" : ""); string folder = AssetDatabaseUtilities.CreateFolder(parentFolder, folderName); AssemblyDefinition def = new AssemblyDefinition(); def.name = name; if (editor) { def.includePlatforms.Add("Editor"); } if (references != null) { def.references.AddRange(references); } if (testFolder) { def.optionalUnityReferences.Add("TestAssemblies"); } AssetDatabaseUtilities.CreateJSONFile(def, folder, def.name + Paths.AssemblyDefinitionExtension); string AssemblyDefinition = @" using System.Reflection; [assembly: AssemblyTitle(""" + def.name + @""")] [assembly: AssemblyProduct(""" + packageName + @""")] "; AssetDatabaseUtilities.CreateTextFile(AssemblyDefinition, folder, "AssemblyInfo.cs"); return(def); }