forked from dotnet/runtime
-
Notifications
You must be signed in to change notification settings - Fork 0
/
python.targets
31 lines (31 loc) · 1.36 KB
/
python.targets
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
<Project>
<Target Name="_FindPythonWindows"
Condition="$([MSBuild]::IsOSPlatform(Windows)) and '$(PYTHON)' == ''"
Returns="$(PYTHON)">
<PropertyGroup>
<_PythonLocationScript>-c "import sys; sys.stdout.write(sys.executable)"</_PythonLocationScript>
</PropertyGroup>
<Exec Command="py -3 $(_PythonLocationScript) 2> nul || python3 $(_PythonLocationScript) 2> nul || python $(_PythonLocationScript) 2> nul"
StandardOutputImportance="Low"
EchoOff="true"
ContinueOnError="ErrorAndContinue"
ConsoleToMsBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="PYTHON" />
</Exec>
</Target>
<Target Name="_FindPythonUnix"
Condition="!$([MSBuild]::IsOSPlatform(Windows)) and '$(PYTHON)' == ''"
Returns="$(PYTHON)">
<Exec Command="command -v python3 || command -v python || command -v py"
StandardOutputImportance="Low"
EchoOff="true"
ContinueOnError="ErrorAndContinue"
ConsoleToMsBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="PYTHON" />
</Exec>
</Target>
<Target Name="FindPython" DependsOnTargets="_FindPythonWindows;_FindPythonUnix">
<Error Condition="'$(PYTHON)' == ''"
Text="Python not found. Please add Python 3 to your path and try again."/>
</Target>
</Project>