17db96d56Sopenharmony_ci<?xml version="1.0" encoding="utf-8"?> 27db96d56Sopenharmony_ci<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 37db96d56Sopenharmony_ci <ItemGroup> 47db96d56Sopenharmony_ci <_PegenSources Include="$(PySourcePath)Grammar\python.gram;$(PySourcePath)Grammar\Tokens" /> 57db96d56Sopenharmony_ci <_PegenOutputs Include="$(PySourcePath)Parser\parser.c" /> 67db96d56Sopenharmony_ci <_ASTSources Include="$(PySourcePath)Parser\Python.asdl" /> 77db96d56Sopenharmony_ci <_ASTOutputs Include="$(PySourcePath)Include\internal\pycore_ast.h"> 87db96d56Sopenharmony_ci <Argument>-H</Argument> 97db96d56Sopenharmony_ci </_ASTOutputs> 107db96d56Sopenharmony_ci <_ASTOutputs Include="$(PySourcePath)Include\internal\pycore_ast_state.h"> 117db96d56Sopenharmony_ci <Argument>-I</Argument> 127db96d56Sopenharmony_ci </_ASTOutputs> 137db96d56Sopenharmony_ci <_ASTOutputs Include="$(PySourcePath)Python\Python-ast.c"> 147db96d56Sopenharmony_ci <Argument>-C</Argument> 157db96d56Sopenharmony_ci </_ASTOutputs> 167db96d56Sopenharmony_ci <_OpcodeSources Include="$(PySourcePath)Tools\scripts\generate_opcode_h.py;$(PySourcePath)Lib\opcode.py" /> 177db96d56Sopenharmony_ci <_OpcodeOutputs Include="$(PySourcePath)Include\opcode.h;$(PySourcePath)Include\internal\pycore_opcode.h;$(PySourcePath)Python\opcode_targets.h" /> 187db96d56Sopenharmony_ci <_TokenSources Include="$(PySourcePath)Grammar\Tokens" /> 197db96d56Sopenharmony_ci <_TokenOutputs Include="$(PySourcePath)Doc\library\token-list.inc"> 207db96d56Sopenharmony_ci <Format>rst</Format> 217db96d56Sopenharmony_ci </_TokenOutputs> 227db96d56Sopenharmony_ci <_TokenOutputs Include="$(PySourcePath)Include\token.h"> 237db96d56Sopenharmony_ci <Format>h</Format> 247db96d56Sopenharmony_ci </_TokenOutputs> 257db96d56Sopenharmony_ci <_TokenOutputs Include="$(PySourcePath)Parser\token.c"> 267db96d56Sopenharmony_ci <Format>c</Format> 277db96d56Sopenharmony_ci </_TokenOutputs> 287db96d56Sopenharmony_ci <_TokenOutputs Include="$(PySourcePath)Lib\token.py"> 297db96d56Sopenharmony_ci <Format>py</Format> 307db96d56Sopenharmony_ci </_TokenOutputs> 317db96d56Sopenharmony_ci <_KeywordSources Include="$(PySourcePath)Grammar\python.gram;$(PySourcePath)Grammar\Tokens" /> 327db96d56Sopenharmony_ci <_KeywordOutputs Include="$(PySourcePath)Lib\keyword.py" /> 337db96d56Sopenharmony_ci </ItemGroup> 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci <Target Name="_TouchRegenSources" Condition="$(ForceRegen) == 'true'"> 367db96d56Sopenharmony_ci <Message Text="Touching source files to force regeneration" Importance="high" /> 377db96d56Sopenharmony_ci <Touch Files="@(_PegenSources);@(_ASTSources);@(_OpcodeSources);@(_TokenSources);@(_KeywordOutputs)" 387db96d56Sopenharmony_ci AlwaysCreate="False" /> 397db96d56Sopenharmony_ci </Target> 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ci <Target Name="_RegenPegen" 427db96d56Sopenharmony_ci Inputs="@(_PegenSources)" Outputs="@(_PegenOutputs)" 437db96d56Sopenharmony_ci DependsOnTargets="FindPythonForBuild"> 447db96d56Sopenharmony_ci <Message Text="Regenerate @(_PegenOutputs->'%(Filename)%(Extension)',' ')" Importance="high" /> 457db96d56Sopenharmony_ci <!-- Specify python.gram with POSIX-like path because the argument gets written into the file verbatim --> 467db96d56Sopenharmony_ci <Exec Command="set PYTHONPATH=Tools\peg_generator%0D%0A$(PythonForBuild) -m pegen -q c ./Grammar/python.gram Grammar\Tokens -o Parser\parser.c" 477db96d56Sopenharmony_ci WorkingDirectory="$(PySourcePath)" /> 487db96d56Sopenharmony_ci </Target> 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_ci <Target Name="_RegenAST_H" 517db96d56Sopenharmony_ci Inputs="@(_ASTSources)" Outputs="@(_ASTOutputs)" 527db96d56Sopenharmony_ci DependsOnTargets="FindPythonForBuild"> 537db96d56Sopenharmony_ci <Message Text="Regenerate @(_ASTOutputs->'%(Filename)%(Extension)',' ')" Importance="high" /> 547db96d56Sopenharmony_ci <Exec Command="$(PythonForBuild) Parser\asdl_c.py Parser\Python.asdl @(_ASTOutputs->'%(Argument) "%(Identity)"',' ')" 557db96d56Sopenharmony_ci WorkingDirectory="$(PySourcePath)" /> 567db96d56Sopenharmony_ci </Target> 577db96d56Sopenharmony_ci 587db96d56Sopenharmony_ci <Target Name="_RegenOpcodes" 597db96d56Sopenharmony_ci Inputs="@(_OpcodeSources)" Outputs="@(_OpcodeOutputs)" 607db96d56Sopenharmony_ci DependsOnTargets="FindPythonForBuild"> 617db96d56Sopenharmony_ci <Message Text="Regenerate @(_OpcodeOutputs->'%(Filename)%(Extension)',' ')" Importance="high" /> 627db96d56Sopenharmony_ci <Exec Command="$(PythonForBuild) Tools\scripts\generate_opcode_h.py Lib\opcode.py Include\opcode.h Include\internal\pycore_opcode.h" 637db96d56Sopenharmony_ci WorkingDirectory="$(PySourcePath)" /> 647db96d56Sopenharmony_ci <Exec Command="$(PythonForBuild) Python\makeopcodetargets.py Python\opcode_targets.h" 657db96d56Sopenharmony_ci WorkingDirectory="$(PySourcePath)" /> 667db96d56Sopenharmony_ci </Target> 677db96d56Sopenharmony_ci 687db96d56Sopenharmony_ci <Target Name="_RegenTokens" 697db96d56Sopenharmony_ci Inputs="@(_TokenSources)" Outputs="@(_TokenOutputs)" 707db96d56Sopenharmony_ci DependsOnTargets="FindPythonForBuild"> 717db96d56Sopenharmony_ci <Message Text="Regenerate @(_TokenOutputs->'%(Filename)%(Extension)',' ')" Importance="high" /> 727db96d56Sopenharmony_ci <Exec Command="$(PythonForBuild) Tools\scripts\generate_token.py %(_TokenOutputs.Format) Grammar\Tokens "%(_TokenOutputs.Identity)"" 737db96d56Sopenharmony_ci WorkingDirectory="$(PySourcePath)" /> 747db96d56Sopenharmony_ci <Touch Files="@(_TokenOutputs)" /> 757db96d56Sopenharmony_ci </Target> 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ci <Target Name="_RegenKeywords" 787db96d56Sopenharmony_ci Inputs="@(_KeywordSources)" Outputs="@(_KeywordOutputs)" 797db96d56Sopenharmony_ci DependsOnTargets="FindPythonForBuild"> 807db96d56Sopenharmony_ci <Message Text="Regenerate @(_KeywordOutputs->'%(Filename)%(Extension)',' ')" Importance="high" /> 817db96d56Sopenharmony_ci <Exec Command="set PYTHONPATH=Tools\peg_generator%0D%0A$(PythonForBuild) -m pegen.keywordgen Grammar\python.gram Grammar\Tokens Lib\keyword.py" 827db96d56Sopenharmony_ci WorkingDirectory="$(PySourcePath)" /> 837db96d56Sopenharmony_ci </Target> 847db96d56Sopenharmony_ci 857db96d56Sopenharmony_ci <Target Name="Regen" 867db96d56Sopenharmony_ci Condition="$(Configuration) != 'PGUpdate'" 877db96d56Sopenharmony_ci DependsOnTargets="_TouchRegenSources;_RegenPegen;_RegenAST_H;_RegenOpcodes;_RegenTokens;_RegenKeywords"> 887db96d56Sopenharmony_ci <Message Text="Generated sources are up to date" Importance="high" /> 897db96d56Sopenharmony_ci </Target> 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_ci <ItemGroup> 937db96d56Sopenharmony_ci <_TestFrozenSources Include="$(PySourcePath)Programs\freeze_test_frozenmain.py; 947db96d56Sopenharmony_ci $(PySourcePath)Programs\test_frozenmain.py; 957db96d56Sopenharmony_ci @(_OpcodeOutputs)" /> 967db96d56Sopenharmony_ci <_TestFrozenOutputs Include="$(PySourcePath)Programs\test_frozenmain.h" /> 977db96d56Sopenharmony_ci <_LicenseSources Include="$(PySourcePath)LICENSE; 987db96d56Sopenharmony_ci $(PySourcePath)PC\crtlicense.txt; 997db96d56Sopenharmony_ci $(bz2Dir)LICENSE; 1007db96d56Sopenharmony_ci $(opensslOutDir)LICENSE; 1017db96d56Sopenharmony_ci $(libffiDir)LICENSE;" /> 1027db96d56Sopenharmony_ci <_LicenseSources Include="$(tcltkDir)tcllicense.terms; 1037db96d56Sopenharmony_ci $(tcltkDir)tklicense.terms; 1047db96d56Sopenharmony_ci $(tcltkDir)tixlicense.terms" Condition="$(IncludeTkinter)" /> 1057db96d56Sopenharmony_ci </ItemGroup> 1067db96d56Sopenharmony_ci 1077db96d56Sopenharmony_ci <Target Name="_RegenTestFrozenmain" Inputs="@(_TestFrozenSources)" Outputs="@(_TestFrozenOutputs)" 1087db96d56Sopenharmony_ci Condition="($(Platform) == 'Win32' or $(Platform) == 'x64') and 1097db96d56Sopenharmony_ci $(Configuration) != 'PGInstrument' and $(Configuration) != 'PGUpdate'"> 1107db96d56Sopenharmony_ci <Message Text="Regenerate @(_TestFrozenOutputs->'%(Filename)%(Extension)', ' ')" Importance="high" /> 1117db96d56Sopenharmony_ci <Exec Command='setlocal 1127db96d56Sopenharmony_ciset PYTHONPATH=$(PySourcePath)Lib 1137db96d56Sopenharmony_ci"$(PythonExe)" Programs\freeze_test_frozenmain.py Programs\test_frozenmain.h' 1147db96d56Sopenharmony_ci WorkingDirectory="$(PySourcePath)" /> 1157db96d56Sopenharmony_ci </Target> 1167db96d56Sopenharmony_ci 1177db96d56Sopenharmony_ci <Target Name="_RegenLicense"> 1187db96d56Sopenharmony_ci <ItemGroup> 1197db96d56Sopenharmony_ci <_Text1 Include="@(_LicenseSources)"> 1207db96d56Sopenharmony_ci <Content Condition="Exists(%(FullPath))">$([System.IO.File]::ReadAllText(%(FullPath)))</Content> 1217db96d56Sopenharmony_ci </_Text1> 1227db96d56Sopenharmony_ci <_Text Include="@(_Text1->'%(Content)')" /> 1237db96d56Sopenharmony_ci </ItemGroup> 1247db96d56Sopenharmony_ci 1257db96d56Sopenharmony_ci <WriteLinesToFile File="$(OutDir)LICENSE.txt" Overwrite="true" Lines="@(_Text)" /> 1267db96d56Sopenharmony_ci <Warning Text="License file %(_LicenseSources.FullPath) is missing" 1277db96d56Sopenharmony_ci Condition="!Exists(@(_LicenseSources))" /> 1287db96d56Sopenharmony_ci <Message Text="Wrote $(OutDir)LICENSE.txt" Importance="high" /> 1297db96d56Sopenharmony_ci </Target> 1307db96d56Sopenharmony_ci 1317db96d56Sopenharmony_ci <Target Name="PostBuildRegen" DependsOnTargets="_RegenTestFrozenmain;_RegenLicense" /> 1327db96d56Sopenharmony_ci</Project> 133