forked from Unity-Technologies/UnityCsReference
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBuildPlayerDataExtractor.cs
More file actions
61 lines (52 loc) · 2.29 KB
/
Copy pathBuildPlayerDataExtractor.cs
File metadata and controls
61 lines (52 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Unity C# reference source
// Copyright (c) Unity Technologies. For terms of use, see
// https://unity3d.com/legal/licenses/Unity_Reference_Only_License
using System.Collections.Generic;
using System.IO;
using UnityEditor.Build.Player;
using UnityEditor.VisualStudioIntegration;
using UnityEngine;
namespace UnityEditor
{
internal class BuildPlayerDataExtractor
{
private readonly IDirectoryIO m_DirectoryIO;
private readonly IFileIO m_FileIO;
public BuildPlayerDataExtractor(IDirectoryIO mDirectoryIo, IFileIO mFileIo)
{
m_DirectoryIO = mDirectoryIo;
m_FileIO = mFileIo;
}
public BuildPlayerDataExtractor()
{
m_DirectoryIO = new DirectoryIOProvider();
m_FileIO = new FileIOProvider();
}
public AssemblyInfoManaged[] ExtractAssemblyTypeInfo(bool isEditor)
{
var buildPlayerDataGeneratorHelper = new BuildPlayerDataGenerator(new BuildPlayerDataGeneratorProcess(), new DirectoryIOProvider());
return ExtractAssemblyTypeInfoFromFiles(buildPlayerDataGeneratorHelper.GetTypeDbFilePaths(isEditor));
}
public AssemblyInfoManaged[] ExtractAssemblyTypeInfoFromFiles(string[] typeDbJsonPaths)
{
List<AssemblyInfoManaged> assemblyInfoResults = new List<AssemblyInfoManaged>(typeDbJsonPaths.Length);
foreach (var typeDbFile in typeDbJsonPaths)
{
var assemblyInfos = JsonUtility.FromJson<ExtractRoot<AssemblyInfoManaged>>(File.ReadAllText(typeDbFile));
assemblyInfoResults.AddRange(assemblyInfos.root);
}
return assemblyInfoResults.ToArray();
}
public void ExtractPlayerRuntimeInitializeOnLoadMethods(string jsonPath)
{
m_DirectoryIO.CreateDirectory(jsonPath);
var path = Path.Combine(BuildPlayerDataGenerator.OutputPath, "Player");
var sourceRuntimeInitializeOnLoads = Path.Combine(path, "RuntimeInitializeOnLoads.json");
if (!m_DirectoryIO.Exists(path) || !m_FileIO.Exists(sourceRuntimeInitializeOnLoads))
{
return;
}
m_FileIO.Copy(sourceRuntimeInitializeOnLoads, Path.Combine(jsonPath, "RuntimeInitializeOnLoads.json"), true);
}
}
}