protected static void GenerateNUSpecFiles(BuildDependencyInfo dependencyInfo, OptionValues optionValues) { foreach (var project in dependencyInfo.FullProjectDependencyGraph.Vertices) { StringBuilder dependenciesBuilder = new StringBuilder(); if (false == optionValues.NUSpecWithoutDeps) { var edges = dependencyInfo.FullProjectDependencyGraph.Edges.Where(x => x.Target == project); foreach (var edge in edges) { dependenciesBuilder.AppendFormat(" <dependency id=\"{0}\" version=\"\" />\n", edge.Source.Name //edge.Target.ver ); } } var data = String.Format(@"<?xml version=""1.0""?> <package > <metadata> <id>{0}</id> <version>$version$</version> <title>{0}</title> <authors>Unknown</authors> <description>Built from {1}</description> <dependencies> {2} </dependencies> </metadata> </package> ", project.Name, project.Path, dependenciesBuilder.ToString()); var fileName = NUSpecFileName(project); _logger.InfoFormat("Generating file: {0} for project {1}", fileName, project.Name); File.WriteAllText(fileName, data); } }
// Generates example data layout of 3 Prefabs referencing 2 materials with 1 shader // Each Prefab and Mesh is located in a separate bundle public static BuildDependencyInfo CreateAssetsWithMaterialReference() { var prefab1 = new GUID("00000000000000000000000000000001"); var prefab2 = new GUID("00000000000000000000000000000002"); var prefab3 = new GUID("00000000000000000000000000000003"); var material1 = ConstructObjectIdentifier(new GUID("00000000000000000000000000000010"), 2100000, FileType.MetaAssetType, ""); // Material var material2 = ConstructObjectIdentifier(new GUID("00000000000000000000000000000020"), 2100000, FileType.MetaAssetType, ""); // Material var shader = ConstructObjectIdentifier(new GUID("00000000000000000000000000000100"), 6, FileType.NonAssetType, "resources/unity_builtin_extra"); // Shader var buildInfo = new BuildDependencyInfo(); buildInfo.assetInfo.Add(prefab1, CreatePrefabWithReferences(prefab1, material1, shader)); buildInfo.assetInfo.Add(prefab2, CreatePrefabWithReferences(prefab2, material2, shader)); buildInfo.assetInfo.Add(prefab3, CreatePrefabWithReferences(prefab3, material1, shader)); List <string> assetDependencies; buildInfo.assetToBundles.GetOrAdd(prefab1, out assetDependencies); assetDependencies.Add(prefab1.ToString()); buildInfo.assetToBundles.GetOrAdd(prefab2, out assetDependencies); assetDependencies.Add(prefab2.ToString()); buildInfo.assetToBundles.GetOrAdd(prefab3, out assetDependencies); assetDependencies.Add(prefab3.ToString()); List <GUID> assetsInBundle; buildInfo.bundleToAssets.GetOrAdd(prefab1.ToString(), out assetsInBundle); assetsInBundle.Add(prefab1); buildInfo.bundleToAssets.GetOrAdd(prefab2.ToString(), out assetsInBundle); assetsInBundle.Add(prefab2); buildInfo.bundleToAssets.GetOrAdd(prefab3.ToString(), out assetsInBundle); assetsInBundle.Add(prefab3); return(buildInfo); }
public static BuildPipelineCodes Build(BuildDependencyInfo buildInfo, out BuildWriteInfo writeInfo, bool useCache = false, BuildProgressTracker progressTracker = null) { writeInfo = new BuildWriteInfo(); // Strip out sprite source textures if nothing references them directly var spriteSourceProcessor = new SpriteSourceProcessor(useCache, progressTracker); var exitCode = spriteSourceProcessor.Convert(buildInfo.assetInfo, out buildInfo.assetInfo); if (exitCode < BuildPipelineCodes.Success) { return(exitCode); } // Generate the commandSet from the calculated dependency information var commandSetProcessor = new BuildWriteProcessor(useCache, progressTracker); exitCode = commandSetProcessor.Convert(buildInfo, out writeInfo); if (exitCode < BuildPipelineCodes.Success) { return(exitCode); } return(exitCode); }
public static BuildPipelineCodes Build(BuildSettings settings, BuildCompression compression, string outputFolder, BuildDependencyInfo buildInfo, BuildWriteInfo writeInfo, out BuildResultInfo result, bool useCache = false, BuildProgressTracker progressTracker = null) { result = new BuildResultInfo(); // Write out resource files var commandSetWriter = new BuildWriteWriter(useCache, progressTracker); var exitCode = commandSetWriter.Convert(writeInfo, settings, buildInfo.buildGlobalUsage, out result); if (exitCode < BuildPipelineCodes.Success) { return(exitCode); } // Archive and compress resource files var resourceArchiver = new ResourceFileArchiver(useCache, progressTracker); exitCode = resourceArchiver.Convert(result, compression, outputFolder, out result.bundleCRCs); if (exitCode < BuildPipelineCodes.Success) { return(exitCode); } // Generate Unity5 compatible manifest files //string[] manifestfiles; //var manifestWriter = new Unity5ManifestWriter(useCache, true); //if (!manifestWriter.Convert(commandSet, output, crc, outputFolder, out manifestfiles)) // return false; return(exitCode); }
public static BuildPipelineCodes Build(BuildInput input, BuildSettings settings, out BuildDependencyInfo buildInfo, bool useCache = false, BuildProgressTracker progressTracker = null) { buildInfo = null; // Rebuild sprite atlas cache for correct dependency calculation & writing var spriteCacher = new SpriteAtlasCacher(useCache, progressTracker); var exitCode = spriteCacher.Convert(settings.target); if (exitCode < BuildPipelineCodes.Success) { return(exitCode); } // Generate dependency information for all assets in BuildInput var buildInputDependency = new BuildInputDependency(useCache, progressTracker); exitCode = buildInputDependency.Convert(input, settings, out buildInfo); if (exitCode < BuildPipelineCodes.Success) { return(exitCode); } return(exitCode); }
protected static void GenerateMSBuildFiles(BuildDependencyInfo dependencyInfo, bool singleFile) { GenerateMSBuildProjFiles(dependencyInfo, singleFile); }