|
| 1 | +<?xml version="1.0" encoding="utf-8"?> |
| 2 | +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| 3 | + |
| 4 | + <PropertyGroup> |
| 5 | + <!-- Enable the restore command to run before builds --> |
| 6 | + <RestorePackages Condition=" '$(RestorePackages)' == '' ">true</RestorePackages> |
| 7 | + <PaketToolsPath>$(MSBuildThisFileDirectory)</PaketToolsPath> |
| 8 | + <PaketRootPath>$(MSBuildThisFileDirectory)..\</PaketRootPath> |
| 9 | + <PaketLockFilePath>$(PaketRootPath)paket.lock</PaketLockFilePath> |
| 10 | + <PaketRestoreCacheFile>$(PaketRootPath)paket-files\paket.restore.cached</PaketRestoreCacheFile> |
| 11 | + <MonoPath Condition="'$(MonoPath)' == '' And Exists('/Library/Frameworks/Mono.framework/Commands/mono')">/Library/Frameworks/Mono.framework/Commands/mono</MonoPath> |
| 12 | + <MonoPath Condition="'$(MonoPath)' == ''">mono</MonoPath> |
| 13 | + </PropertyGroup> |
| 14 | + |
| 15 | + <PropertyGroup> |
| 16 | + <!-- Paket command --> |
| 17 | + <PaketExePath Condition=" '$(PaketExePath)' == '' AND Exists('$(PaketRootPath)paket.exe')">$(PaketRootPath)paket.exe</PaketExePath> |
| 18 | + <PaketExePath Condition=" '$(PaketExePath)' == '' ">$(PaketToolsPath)paket.exe</PaketExePath> |
| 19 | + <PaketCommand Condition=" '$(OS)' == 'Windows_NT'">"$(PaketExePath)"</PaketCommand> |
| 20 | + <PaketCommand Condition=" '$(OS)' != 'Windows_NT' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"</PaketCommand> |
| 21 | + </PropertyGroup> |
| 22 | + |
| 23 | + <Choose> <!-- MyProject.fsproj.paket.references has the highest precedence --> |
| 24 | + <When Condition="Exists('$(MSBuildProjectFullPath).paket.references')"> |
| 25 | + <PropertyGroup> |
| 26 | + <PaketReferences>$(MSBuildProjectFullPath).paket.references</PaketReferences> |
| 27 | + </PropertyGroup> |
| 28 | + </When> <!-- MyProject.paket.references --> |
| 29 | + <When Condition="Exists('$(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references')"> |
| 30 | + <PropertyGroup> |
| 31 | + <PaketReferences>$(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references</PaketReferences> |
| 32 | + </PropertyGroup> |
| 33 | + </When> <!-- paket.references --> |
| 34 | + <When Condition="Exists('$(MSBuildProjectDirectory)\paket.references')"> |
| 35 | + <PropertyGroup> |
| 36 | + <PaketReferences>$(MSBuildProjectDirectory)\paket.references</PaketReferences> |
| 37 | + </PropertyGroup> |
| 38 | + </When> <!-- Set to empty if a reference file isn't found matching one of the 3 format options --> |
| 39 | + <Otherwise> |
| 40 | + <PropertyGroup> |
| 41 | + <PaketReferences></PaketReferences> |
| 42 | + </PropertyGroup> |
| 43 | + </Otherwise> |
| 44 | + </Choose> |
| 45 | + |
| 46 | + <PropertyGroup> |
| 47 | + <!-- Commands --> |
| 48 | + <RestoreCommand>$(PaketCommand) restore --references-file "$(PaketReferences)"</RestoreCommand> |
| 49 | + <!-- We need to ensure packages are restored prior to assembly resolve --> |
| 50 | + <BuildDependsOn Condition="$(RestorePackages) == 'true'">RestorePackages; $(BuildDependsOn);</BuildDependsOn> |
| 51 | + </PropertyGroup> |
| 52 | + <Target Name="RestorePackages"> |
| 53 | + <PropertyGroup> |
| 54 | + <PaketRestoreRequired>true</PaketRestoreRequired> |
| 55 | + </PropertyGroup> |
| 56 | + |
| 57 | + <PropertyGroup Condition="Exists('$(PaketRestoreCacheFile)') "> |
| 58 | + <PaketRestoreCachedHash>$([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)'))</PaketRestoreCachedHash> |
| 59 | + <PaketRestoreLockFileHash>$([System.IO.File]::ReadAllText('$(PaketLockFilePath)'))</PaketRestoreLockFileHash> |
| 60 | + <PaketRestoreRequired>true</PaketRestoreRequired> |
| 61 | + <PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '$(PaketRestoreCachedHash)' ">false</PaketRestoreRequired> |
| 62 | + <PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '' ">true</PaketRestoreRequired> |
| 63 | + </PropertyGroup> |
| 64 | + |
| 65 | + <Exec Command="$(RestoreCommand)" |
| 66 | + IgnoreStandardErrorWarningFormat="true" |
| 67 | + WorkingDirectory="$(PaketRootPath)" |
| 68 | + ContinueOnError="false" |
| 69 | + Condition=" '$(PaketRestoreRequired)' == 'true' AND Exists('$(PaketReferences)') AND '$(PaketReferences)' != '' " |
| 70 | + /> |
| 71 | + </Target> |
| 72 | +</Project> |
0 commit comments