IEnumerable <ResponseFileData> ParseResponseFileData(MonoIsland island) { var systemReferenceDirectories = MonoLibraryHelpers.GetSystemReferenceDirectories(island._api_compatibility_level); Dictionary <string, ResponseFileData> responseFilesData = island._responseFiles.ToDictionary(x => x, x => ScriptCompilerBase.ParseResponseFileFromFile( x, _projectDirectory, systemReferenceDirectories )); Dictionary <string, ResponseFileData> responseFilesWithErrors = responseFilesData.Where(x => x.Value.Errors.Any()) .ToDictionary(x => x.Key, x => x.Value); if (responseFilesWithErrors.Any()) { foreach (var error in responseFilesWithErrors) { foreach (var valueError in error.Value.Errors) { UnityEngine.Debug.LogErrorFormat("{0} Parse Error : {1}", error.Key, valueError); } } } return(responseFilesData.Select(x => x.Value)); }
IEnumerable <ResponseFileData> ParseResponseFileData(Compilation.Assembly assembly) { var systemReferenceDirectories = MonoLibraryHelpers.GetSystemReferenceDirectories(assembly.compilerOptions.ApiCompatibilityLevel); Dictionary <string, ResponseFileData> responseFilesData = assembly.compilerOptions.ResponseFiles.ToDictionary(x => x, x => m_assemblyNameProvider.ParseResponseFile( x, _projectDirectory, systemReferenceDirectories )); Dictionary <string, ResponseFileData> responseFilesWithErrors = responseFilesData.Where(x => x.Value.Errors.Any()) .ToDictionary(x => x.Key, x => x.Value); if (responseFilesWithErrors.Any()) { foreach (var error in responseFilesWithErrors) { foreach (var valueError in error.Value.Errors) { UnityEngine.Debug.LogErrorFormat("{0} Parse Error : {1}", error.Key, valueError); } } } return(responseFilesData.Select(x => x.Value)); }
IEnumerable <ScriptCompilerBase.ResponseFileData> ParseResponseFileData(MonoIsland island) { var systemReferenceDirectories = CSharpLanguage.GetCSharpCompiler(island._target, true, "Assembly-CSharp") == CSharpCompiler.Microsoft && PlayerSettings.GetScriptingBackend(BuildPipeline.GetBuildTargetGroup(island._target)) == ScriptingImplementation.WinRTDotNET && !island._editor ? MicrosoftCSharpCompiler.GetClassLibraries(island._target, island._editor) : MonoLibraryHelpers.GetSystemReferenceDirectories(island._api_compatibility_level); Dictionary <string, ScriptCompilerBase.ResponseFileData> responseFilesData = island._responseFiles.ToDictionary(x => x, x => ScriptCompilerBase.ParseResponseFileFromFile( Path.Combine(_projectDirectory, x), _projectDirectory, systemReferenceDirectories )); Dictionary <string, ScriptCompilerBase.ResponseFileData> responseFilesWithErrors = responseFilesData.Where(x => x.Value.Errors.Any()) .ToDictionary(x => x.Key, x => x.Value); if (responseFilesWithErrors.Any()) { foreach (var error in responseFilesWithErrors) { foreach (var valueError in error.Value.Errors) { UnityEngine.Debug.LogErrorFormat("{0} Parse Error : {1}", error.Key, valueError); } } } return(responseFilesData.Select(x => x.Value)); }
public override void BeginCompiling() { var assemblyInfo = ScriptAssemblyToAssemblyInfo(m_Assembly, m_TempOutputDirectory); var systemReferenceDirectories = MonoLibraryHelpers.GetSystemReferenceDirectories(m_Assembly.CompilerOptions.ApiCompatibilityLevel); m_ExternalCompiler.BeginCompiling(assemblyInfo, m_Assembly.CompilerOptions.ResponseFiles, SystemInfo.operatingSystemFamily, systemReferenceDirectories); }
protected override string[] GetSystemReferenceDirectories() { var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(BuildTarget); if (IsBuildingForDotNetScriptingBackend(buildTargetGroup, m_Island._editor)) { return(GetClassLibraries(BuildTarget, m_Island._editor).Select(library => Directory.GetParent(library).FullName).Distinct().ToArray()); } return(MonoLibraryHelpers.GetSystemReferenceDirectories(m_Island._api_compatibility_level)); }
protected override string[] GetSystemReferenceDirectories() { var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(BuildTarget); if (BuildTarget == BuildTarget.WSAPlayer && PlayerSettings.GetScriptingBackend(buildTargetGroup) == ScriptingImplementation.WinRTDotNET) { return(GetClassLibraries(BuildTarget).Select(library => Directory.GetParent(library).FullName).Distinct().ToArray()); } return(MonoLibraryHelpers.GetSystemReferenceDirectories(m_Island._api_compatibility_level)); }
public static List <string> GetStaticSearchPaths(BuildTarget buildTarget) { var unityAssembliesInternal = EditorCompilationInterface.Instance.PrecompiledAssemblyProvider.GetUnityAssemblies(true, buildTarget); var namedBuildTarget = NamedBuildTarget.FromActiveSettings(buildTarget); var systemReferenceDirectories = MonoLibraryHelpers.GetSystemReferenceDirectories( PlayerSettings.GetApiCompatibilityLevel(namedBuildTarget)); var searchPaths = unityAssembliesInternal.Select(x => Path.GetDirectoryName(x.Path)) .Distinct().ToList(); searchPaths.AddRange(systemReferenceDirectories); return(searchPaths); }
ScriptCompilerBase.ResponseFileData parseResponseFileData(MonoIsland island, string responseFilePath) { var systemReferenceDirectories = CSharpLanguage.GetCSharpCompiler(island._target, true, "Assembly-CSharp") == CSharpCompiler.Microsoft && PlayerSettings.GetScriptingBackend(BuildPipeline.GetBuildTargetGroup(island._target)) == ScriptingImplementation.WinRTDotNET ? MicrosoftCSharpCompiler.GetClassLibraries(island._target) : MonoLibraryHelpers.GetSystemReferenceDirectories(island._api_compatibility_level); ScriptCompilerBase.ResponseFileData responseFileData = ScriptCompilerBase.ParseResponseFileFromFile( Path.Combine(_projectDirectory, responseFilePath), _projectDirectory, systemReferenceDirectories); if (responseFileData.Errors.Length > 0) { foreach (var error in responseFileData.Errors) { UnityEngine.Debug.LogErrorFormat("{0} Parse Error : {1}", responseFilePath, error); } } return(responseFileData); }
internal static void AddResponseFileToArguments(List <string> arguments, string responseFileName, ApiCompatibilityLevel apiCompatibilityLevel) { var systemReferencesDirectories = MonoLibraryHelpers.GetSystemReferenceDirectories(apiCompatibilityLevel); var responseFileData = ParseResponseFileFromFile( responseFileName, Directory.GetParent(Application.dataPath).FullName, systemReferencesDirectories); foreach (var error in responseFileData.Errors) { Debug.LogError($"{responseFileName} Parse Error : {error}"); } arguments.AddRange(responseFileData.Defines.Distinct().Select(define => "/define:" + define)); arguments.AddRange(responseFileData.FullPathReferences.Select(reference => "/reference:" + PrepareFileName(reference))); if (responseFileData.Unsafe) { arguments.Add("/unsafe"); } arguments.AddRange(responseFileData.OtherArguments); }
protected override string[] GetSystemReferenceDirectories() { return(MonoLibraryHelpers.GetSystemReferenceDirectories(m_Island._api_compatibility_level)); }
public static string[] GetSystemAssemblyDirectories(ApiCompatibilityLevel apiCompatibilityLevel) { return(MonoLibraryHelpers.GetSystemReferenceDirectories(apiCompatibilityLevel)); }