# CompilationPipeline

> Methods and properties for script compilation pipeline.

## Definition

* **Type:** Class
* **Namespace:** [UnityEditor.Compilation](/engine/6000.7/script-reference/unityeditor/compilation.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public static class CompilationPipeline
```

## Static Properties

| Property                                                                                                            | Description                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| [codeOptimization](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/codeoptimization.md) | Current [code optimization](/engine/6000.7/script-reference/unityeditor/compilation/codeoptimization.md) mode. |

## Static Methods

| Method                                                                                                                                                                                  | Description                                                                                                                                                                                       |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AssemblyDefinitionReferenceGUIDToGUID](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/assemblydefinitionreferenceguidtoguid.md)                           | Converts an assembly definition file GUID reference to a GUID string.                                                                                                                             |
| [GetAssemblies](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getassemblies.md)                                                                           | Get all script assemblies compiled by Unity, filtered by [AssembliesType](/engine/6000.7/script-reference/unityeditor/compilation/assembliestype.md).                                             |
| [GetAssemblyDefinitionFilePathFromAssemblyName](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getassemblydefinitionfilepathfromassemblyname.md)           | Returns the assembly definition file path from an assembly name. Returns null if there is no assembly definition file for the given assembly name.                                                |
| [GetAssemblyDefinitionFilePathFromAssemblyReference](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getassemblydefinitionfilepathfromassemblyreference.md) | Returns the assembly definition file path for an Assembly Definition File GUID or assembly name reference. Returns null if there is no assembly definition file for the given assembly reference. |
| [GetAssemblyDefinitionFilePathFromScriptPath](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getassemblydefinitionfilepathfromscriptpath.md)               | Returns the assembly definition file path for a source (script) path. Returns null if there is no assembly definition file for the given script path.                                             |
| [GetAssemblyDefinitionPlatforms](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getassemblydefinitionplatforms.md)                                         | Returns all the platforms supported by assembly definition files.                                                                                                                                 |
| [GetAssemblyDefinitionReferenceType](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getassemblydefinitionreferencetype.md)                                 | Utility method to determine whether an Assembly Definition File reference is a GUID reference or an assembly name reference.                                                                      |
| [GetAssemblyNameFromScriptPath](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getassemblynamefromscriptpath.md)                                           | Returns the assembly name for a source (script) path. Returns null if there is no assembly name for the given script path.                                                                        |
| [GetAssemblyRootNamespaceFromScriptPath](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getassemblyrootnamespacefromscriptpath.md)                         | Gets the root namespace associated with the given script path.                                                                                                                                    |
| [GetDefinesFromAssemblyName](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getdefinesfromassemblyname.md)                                                 | Lists all the #define directives used to compile the specified assembly.                                                                                                                          |
| [GetPrecompiledAssemblyNames](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getprecompiledassemblynames.md)                                               | Get all precompiled assembly names.                                                                                                                                                               |
| [GetPrecompiledAssemblyPathFromAssemblyName](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getprecompiledassemblypathfromassemblyname.md)                 | Returns the Assembly file path from an assembly name. Returns null if there is no Precompiled Assembly name match.                                                                                |
| [GetPrecompiledAssemblyPaths](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getprecompiledassemblypaths.md)                                               | Returns the paths to the precompiled assemblies which are included when building editor assemblies and match any of the given PrecompiledAssemblySources.                                         |
| [GetResponseFileDefinesFromAssemblyName](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getresponsefiledefinesfromassemblyname.md)                         | Lists all the #define directives used to compile the specified assembly, that is from a Response File.                                                                                            |
| [GetSystemAssemblyDirectories](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/getsystemassemblydirectories.md)                                             | Use this to get a list of directories containing system references for the specific [ApiCompatibilityLevel](/engine/6000.7/script-reference/unityeditor/apicompatibilitylevel.md).                |
| [GUIDToAssemblyDefinitionReferenceGUID](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/guidtoassemblydefinitionreferenceguid.md)                           | Converts the given GUID to an assembly definition file GUID reference.                                                                                                                            |
| [IsDefineConstraintsCompatible](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/isdefineconstraintscompatible.md)                                           | Allows you to test whether the specified #define constraints are satisfied by the specified list of #define directives.                                                                           |
| [ParseResponseFile](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/parseresponsefile.md)                                                                   | Retrieves the [ResponseFileData](/engine/6000.7/script-reference/unityeditor/compilation/responsefiledata.md) describing the content of the response file.                                        |
| [RequestScriptCompilation](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/requestscriptcompilation.md)                                                     | Allows you to request that the Editor recompile scripts in the project.                                                                                                                           |

## Static Events

| Member                                                                                                                                          | Description                                                                                                                                                                                                                                                                                                                                                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [assemblyCompilationFinished](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/assemblycompilationfinished.md)       | An event that is invoked on the main thread when compilation of an assembly finishes.                                                                                                                                                                                                                                                                                                                  |
| [assemblyCompilationNotRequired](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/assemblycompilationnotrequired.md) | Event invoked on the main thread during a compilation pass for each assembly that is already up to date and therefore doesn't need to be recompiled.                                                                                                                                                                                                                                                   |
| [codeOptimizationChanged](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/codeoptimizationchanged.md)               | This event triggers whenever the [CompilationPipeline.codeOptimization](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/codeoptimization.md) property changes between [Debug](/engine/6000.7/script-reference/unityeditor/compilation/codeoptimization/debug.md) and [Release](/engine/6000.7/script-reference/unityeditor/compilation/codeoptimization/release.md) modes. |
| [compilationFinished](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/compilationfinished.md)                       | An event that is invoked on the main thread when the compilation of assemblies finishes.                                                                                                                                                                                                                                                                                                               |
| [compilationStarted](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/compilationstarted.md)                         | An event that is invoked on the main thread when the compilation of assemblies starts.                                                                                                                                                                                                                                                                                                                 |

## Enums

| Enum                                                                                                                                                        | Description                                                                    |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [CompilationPipeline.PrecompiledAssemblySources](/engine/6000.7/script-reference/unityeditor/compilation/compilationpipeline/precompiledassemblysources.md) | Specifies the sources of precompiled assemblies referenced during compilation. |
