|
1 | 1 | <Project>
|
2 | 2 |
|
3 |
| - <!-- Set default Unity folder paths --> |
| 3 | + <!-- Set OS-specific absolte/relative folder paths --> |
4 | 4 | <Choose>
|
5 | 5 | <When Condition="$([MSBuild]::IsOsPlatform(Windows))">
|
6 | 6 | <PropertyGroup>
|
7 | 7 | <OSInstallRoot Condition="'$(OSInstallRoot)'==''">C:\Program Files</OSInstallRoot>
|
8 |
| - <UnityManagedPath Condition="'$(UnityManagedPath)'==''">Editor\Data\Managed</UnityManagedPath> |
9 |
| - <UnityExtensionsPath Condition="'$(UnityExtensionsPath)'==''">Editor\Data\UnityExtensions\Unity</UnityExtensionsPath> |
| 8 | + <UnityManagedDir Condition="'$(UnityManagedDir)'==''">Editor\Data\Managed</UnityManagedDir> |
| 9 | + <UnityExtensionsDir Condition="'$(UnityExtensionsDir)'==''">Editor\Data\UnityExtensions\Unity</UnityExtensionsDir> |
10 | 10 | </PropertyGroup>
|
11 | 11 | </When>
|
12 | 12 | <When Condition="$([MSBuild]::IsOsPlatform(OSX))">
|
13 | 13 | <PropertyGroup>
|
14 | 14 | <OSInstallRoot Condition="'$(OSInstallRoot)'==''">/Applications</OSInstallRoot>
|
15 |
| - <UnityManagedPath Condition="'$(UnityManagedPath)'==''">Unity.app\Contents\Managed</UnityManagedPath> |
16 |
| - <UnityExtensionsPath Condition="'$(UnityExtensionsPath)'==''">Unity.app\Contents\UnityExtensions\Unity</UnityExtensionsPath> |
| 15 | + <UnityManagedDir Condition="'$(UnityManagedDir)'==''">Unity.app\Contents\Managed</UnityManagedDir> |
| 16 | + <UnityExtensionsDir Condition="'$(UnityExtensionsDir)'==''">Editor\Unity.app\Contents\UnityExtensions\Unity</UnityExtensionsDir> |
17 | 17 | </PropertyGroup>
|
18 | 18 | </When>
|
19 | 19 | <When Condition="$([MSBuild]::IsOsPlatform(Linux))">
|
20 | 20 | <PropertyGroup>
|
21 | 21 | <OSInstallRoot Condition="'$(OSInstallRoot)'==''">$([System.Environment]::GetFolderPath('System.Environment+SpecialFolder.UserProfile'))</OSInstallRoot>
|
22 |
| - <UnityManagedPath Condition="'$(UnityManagedPath)'==''">Editor\Data\Managed</UnityManagedPath> |
23 |
| - <UnityExtensionsPath Condition="'$(UnityExtensionsPath)'==''">Editor\Data\UnityExtensions\Unity</UnityExtensionsPath> |
| 22 | + <UnityManagedDir Condition="'$(UnityManagedDir)'==''">Editor\Data\Managed</UnityManagedDir> |
| 23 | + <UnityExtensionsDir Condition="'$(UnityExtensionsDir)'==''">Editor\Data\UnityExtensions\Unity</UnityExtensionsDir> |
24 | 24 | </PropertyGroup>
|
25 | 25 | </When>
|
26 | 26 | </Choose>
|
| 27 | + |
| 28 | + <!-- |
| 29 | + Parse editor version from ProjectVersion.txt file in Unity project. Its contents look like this (minus indent): |
| 30 | + m_EditorVersion: 2021.3.2f1 |
| 31 | + m_EditorVersionWithRevision: 2021.3.2f1 (d6360bedb9a0) |
| 32 | +
|
| 33 | + We first condense this to single "CSV" line, e.g.: m_EditorVersion,2021.3.2f1,m_EditorVersionWithRevision,2021.3.2f1 (d6360bedb9a0) |
| 34 | + Then pluck out the versions by splitting on comma |
| 35 | + --> |
| 36 | + <PropertyGroup Condition="'$(UnityVersion)'=='' And '$(UnityProjectPath)'!=''"> |
| 37 | + <UnityProjectVersionTxt>$([System.IO.File]::ReadAllText(`$(UnityProjectPath)\ProjectSettings\ProjectVersion.txt`))</UnityProjectVersionTxt> |
| 38 | + <UnityProjectVersionCsv>$([System.Text.RegularExpressions.Regex]::Replace(`$(UnityProjectVersionTxt)`, `\r\n|\r|\n|: `, `,`))</UnityProjectVersionCsv> |
| 39 | + <UnityVersion>$(UnityProjectVersionCsv.Split(`,`)[1].Trim())</UnityVersion> |
| 40 | + </PropertyGroup> |
| 41 | + <PropertyGroup Condition="'$(UnityVersion)'=='' And '$(UnityProjectPath)'==''"> |
| 42 | + <UnityVersion>SET_VERSION_OR_PROJECT</UnityVersion> |
| 43 | + </PropertyGroup> |
| 44 | + |
| 45 | + <!-- Set default Unity absolte/relative folder paths --> |
27 | 46 | <PropertyGroup>
|
28 |
| - <UnityInstallRoot Condition="'$(UnityInstallRoot)'==''">$(OSInstallRoot)\Unity\Hub\Editor</UnityInstallRoot> |
29 |
| - <UnityModulesPath Condition="'$(UnityModulesPath)'==''">$(UnityManagedPath)\UnityEngine</UnityModulesPath> |
30 |
| - <UnityPlaybackEnginesPath Condition="'$(UnityPlaybackEnginesPath)'==''">Editor\Data\PlaybackEngines</UnityPlaybackEnginesPath> |
31 |
| - <UnityAndroidPlayerPath Condition="'$(UnityAndroidPlayerPath)'==''">$(UnityPlaybackEnginesPath)\AndroidPlayer</UnityAndroidPlayerPath> |
32 |
| - <UnityiOSSupportPath Condition="'$(UnityiOSSupportPath)'==''">$(UnityPlaybackEnginesPath)\iOSSupport</UnityiOSSupportPath> |
33 |
| - <UnityBuiltInPackagesPath Condition="'$(UnityBuiltInPackagesPath)'==''">Editor\Data\Resources\PackageManager\BuiltInPackages</UnityBuiltInPackagesPath> |
34 |
| - |
35 |
| - <UnityPackageCachePath Condition="'$(UnityPackageCachePath)'==''">Library\PackageCache</UnityPackageCachePath> |
36 |
| - <UnityScriptAssembliesPath Condition="'$(UnityScriptAssembliesPath)'==''">Library\ScriptAssemblies</UnityScriptAssembliesPath> |
| 47 | + <UnityInstallRootDir Condition="'$(UnityInstallRootDir)'==''">Unity\Hub\Editor</UnityInstallRootDir> |
| 48 | + <UnityInstallRoot Condition="'$(UnityInstallRoot)'==''">$(OSInstallRoot)\$(UnityInstallRootDir)</UnityInstallRoot> |
| 49 | + |
| 50 | + <UnityVersionInstallPath Condition="'$(UnityVersionInstallPath)'==''">$(UnityInstallRoot)\$(UnityVersion)</UnityVersionInstallPath> |
| 51 | + <UnityManagedPath Condition="'$(UnityManagedPath)'==''">$(UnityVersionInstallPath)\$(UnityManagedDir)</UnityManagedPath> |
| 52 | + <UnityExtensionsPath Condition="'$(UnityExtensionsPath)'==''">$(UnityVersionInstallPath)\$(UnityExtensionsDir)</UnityExtensionsPath> |
| 53 | + |
| 54 | + <UnityModulesDir Condition="'$(UnityModulesDir)'==''">UnityEngine</UnityModulesDir> |
| 55 | + <UnityModulesPath Condition="'$(UnityModulesPath)'==''">$(UnityManagedPath)\$(UnityModulesDir)</UnityModulesPath> |
| 56 | + |
| 57 | + <UnityPlaybackEnginesDir Condition="'$(UnityPlaybackEnginesDir)'==''">Editor\Data\PlaybackEngines</UnityPlaybackEnginesDir> |
| 58 | + <UnityAndroidPlayerDir Condition="'$(UnityAndroidPlayerDir)'==''">$(UnityPlaybackEnginesDir)\AndroidPlayer</UnityAndroidPlayerDir> |
| 59 | + <UnityiOSSupportDir Condition="'$(UnityiOSSupportDir)'==''">$(UnityPlaybackEnginesDir)\iOSSupport</UnityiOSSupportDir> |
| 60 | + <UnityPlaybackEnginesPath Condition="'$(UnityPlaybackEnginesPath)'==''">$(UnityVersionInstallPath)\$(UnityPlaybackEnginesDir)</UnityPlaybackEnginesPath> |
| 61 | + <UnityAndroidPlayerPath Condition="'$(UnityAndroidPlayerPath)'==''">$(UnityVersionInstallPath)\$(UnityAndroidPlayerDir)</UnityAndroidPlayerPath> |
| 62 | + <UnityiOSSupportPath Condition="'$(UnityiOSSupportPath)'==''">$(UnityVersionInstallPath)\$(UnityiOSSupportDir)</UnityiOSSupportPath> |
| 63 | + |
| 64 | + <UnityBuiltInPackagesDir Condition="'$(UnityBuiltInPackagesDir)'==''">Editor\Data\Resources\PackageManager\BuiltInPackages</UnityBuiltInPackagesDir> |
| 65 | + <UnityBuiltInPackagesPath Condition="'$(UnityBuiltInPackagesPath)'==''">$(UnityVersionInstallPath)\$(UnityBuiltInPackagesDir)</UnityBuiltInPackagesPath> |
| 66 | + |
| 67 | + <UnityPackageCacheDir Condition="'$(UnityPackageCacheDir)'==''">Library\PackageCache</UnityPackageCacheDir> |
| 68 | + <UnityPackageCachePath Condition="'$(UnityPackageCachePath)'==''">$(UnityProjectPath)\$(UnityPackageCacheDir)</UnityPackageCachePath> |
| 69 | + |
| 70 | + <UnityScriptAssembliesDir Condition="'$(UnityScriptAssembliesDir)'==''">Library\ScriptAssemblies</UnityScriptAssembliesDir> |
| 71 | + <UnityScriptAssembliesPath Condition="'$(UnityScriptAssembliesPath)'==''">$(UnityProjectPath)\$(UnityScriptAssembliesDir)</UnityScriptAssembliesPath> |
37 | 72 | </PropertyGroup>
|
38 | 73 |
|
39 |
| - <!-- Set relative paths of specific Unity assemblies --> |
| 74 | + <!-- Set default paths of specific Unity assemblies --> |
40 | 75 | <PropertyGroup>
|
41 | 76 | <UnityEnginePath Condition="'$(UnityEnginePath)'==''">$(UnityManagedPath)\UnityEngine.dll</UnityEnginePath>
|
42 | 77 | <UnityEditorPath Condition="'$(UnityEditorPath)'==''">$(UnityManagedPath)\UnityEditor.dll</UnityEditorPath>
|
43 | 78 | <UnityEngineUIPath Condition="'$(UnityEngineUIPath)'==''">$(UnityExtensionsPath)\GUISystem\UnityEngine.UI.dll</UnityEngineUIPath>
|
44 | 79 | <UnityEngineTestRunnerPath Condition="'$(UnityEngineTestRunnerPath)'==''">$(UnityExtensionsPath)\TestRunner\UnityEngine.TestRunner.dll</UnityEngineTestRunnerPath>
|
45 | 80 | </PropertyGroup>
|
46 | 81 |
|
47 |
| - <!-- Set relative paths of specific PackageCache assemblies --> |
| 82 | + <!-- Set default paths of specific PackageCache assemblies --> |
48 | 83 | <PropertyGroup>
|
49 |
| - <NewtonsoftJsonPath Condition="'$(NewtonsoftJsonPath)'==''">$(UnityPackageCachePath)\com.unity.nuget.newtonsoft-json*\Runtime\Newtonsoft.Json.dll</NewtonsoftJsonPath> |
50 |
| - <NunitPath Condition="'$(NunitPath)'==''">$(UnityPackageCachePath)\com.unity.ext.nunit*\net35\unity-custom\nunit.framework.dll</NunitPath> |
51 |
| - <MoqPath Condition="'$(MoqPath)'==''">$(UnityPackageCachePath)\nuget.moq*\Moq.dll</MoqPath> |
52 |
| - <UnityAnalyticsStandardEventsPath Condition="'$(UnityAnalyticsStandardEventsPath)'==''">$(UnityPackageCachePath)\com.unity.analytics*\AnalyticsStandardEvents\Unity.Analytics.StandardEvents.dll</UnityAnalyticsStandardEventsPath> |
| 84 | + <NewtonsoftJsonAssembly Condition="'$(NewtonsoftJsonAssembly)'==''">com.unity.nuget.newtonsoft-json*\Runtime\Newtonsoft.Json.dll</NewtonsoftJsonAssembly> |
| 85 | + <NewtonsoftJsonPath Condition="'$(NewtonsoftJsonPath)'==''">$(UnityPackageCachePath)\$(NewtonsoftJsonAssembly)</NewtonsoftJsonPath> |
| 86 | + |
| 87 | + <NunitAssembly Condition="'$(NunitAssembly)'==''">com.unity.ext.nunit*\net35\unity-custom\nunit.framework.dll</NunitAssembly> |
| 88 | + <NunitPath Condition="'$(NunitPath)'==''">$(UnityPackageCachePath)\$(NunitAssembly)</NunitPath> |
| 89 | + |
| 90 | + <MoqAssembly Condition="'$(MoqAssembly)'==''">nuget.moq*\Moq.dll</MoqAssembly> |
| 91 | + <MoqPath Condition="'$(MoqPath)'==''">$(UnityPackageCachePath)\$(MoqAssembly)</MoqPath> |
| 92 | + |
| 93 | + <UnityAnalyticsStandardEventsAssembly Condition="'$(UnityAnalyticsStandardEventsAssembly)'==''">com.unity.analytics*\AnalyticsStandardEvents\Unity.Analytics.StandardEvents.dll</UnityAnalyticsStandardEventsAssembly> |
| 94 | + <UnityAnalyticsStandardEventsPath Condition="'$(UnityAnalyticsStandardEventsPath)'==''">$(UnityPackageCachePath)\$(UnityAnalyticsStandardEventsAssembly)</UnityAnalyticsStandardEventsPath> |
| 95 | + |
53 | 96 | <UnityEditorAndroidExtensionsPath Condition="'$(UnityEditorAndroidExtensionsPath)'==''">$(UnityAndroidPlayerPath)\UnityEditor.Android.Extensions.dll</UnityEditorAndroidExtensionsPath>
|
54 | 97 | <UnityEditoriOSExtensionsCommonPath Condition="'$(UnityEditoriOSExtensionsCommonPath)'==''">$(UnityiOSSupportPath)\UnityEditor.iOS.Extensions.Common.dll</UnityEditoriOSExtensionsCommonPath>
|
55 | 98 | <UnityEditoriOSExtensionsXcodePath Condition="'$(UnityEditoriOSExtensionsXcodePath)'==''">$(UnityiOSSupportPath)\UnityEditor.iOS.Extensions.Xcode.dll</UnityEditoriOSExtensionsXcodePath>
|
56 | 99 | </PropertyGroup>
|
57 | 100 |
|
58 | 101 | <!-- Add default Unity references -->
|
59 | 102 | <ItemGroup>
|
60 |
| - <Reference Include="$(UnityInstallRoot)\$(UnityVersion)\$(UnityEnginePath)" Private="false" /> |
| 103 | + <Reference Include="$(UnityEnginePath)" Private="false" /> |
61 | 104 | </ItemGroup>
|
62 | 105 |
|
63 | 106 | </Project>
|
0 commit comments