diff options
author | Steve Dower <steve.dower@python.org> | 2021-07-05 15:18:14 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-05 15:18:14 (GMT) |
commit | 1b133ab8412e4f6a53914212df7a7656f376256d (patch) | |
tree | 1b06bc2e4efd1c3381b08b28dc17678faf09032a /PCbuild | |
parent | 7ac7a0c0f03c60934bc924ee144db170a0e0161f (diff) | |
download | cpython-1b133ab8412e4f6a53914212df7a7656f376256d.zip cpython-1b133ab8412e4f6a53914212df7a7656f376256d.tar.gz cpython-1b133ab8412e4f6a53914212df7a7656f376256d.tar.bz2 |
bpo-44479: Regenerate test_frozenmain.h and frozen_hello.h during build on Windows (GH-26984)
Diffstat (limited to 'PCbuild')
-rw-r--r-- | PCbuild/_freeze_importlib.vcxproj | 14 | ||||
-rw-r--r-- | PCbuild/python.vcxproj | 21 | ||||
-rw-r--r-- | PCbuild/regen.targets | 43 |
3 files changed, 49 insertions, 29 deletions
diff --git a/PCbuild/_freeze_importlib.vcxproj b/PCbuild/_freeze_importlib.vcxproj index 52d8f1a..e437412 100644 --- a/PCbuild/_freeze_importlib.vcxproj +++ b/PCbuild/_freeze_importlib.vcxproj @@ -123,6 +123,11 @@ <IntFile>$(IntDir)importlib_zipimport.g.h</IntFile> <OutFile>$(PySourcePath)Python\importlib_zipimport.h</OutFile> </None> + <None Include="..\Tools\freeze\flag.py"> + <ModName>hello</ModName> + <IntFile>$(IntDir)frozen_hello.g.h</IntFile> + <OutFile>$(PySourcePath)Python\frozen_hello.h</OutFile> + </None> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> @@ -130,11 +135,6 @@ <Target Name="_RebuildImportLib"> <Exec Command='"$(TargetPath)" "%(None.ModName)" "%(None.FullPath)" "%(None.IntFile)"' /> - <PropertyGroup> - <_OldContent Condition="Exists($(OutTargetPath))"></_OldContent> - <_NewContent Condition="Exists($(IntTargetPath))">$([System.IO.File]::ReadAllText($(IntTargetPath)).Replace(`
`, `
`))</_NewContent> - </PropertyGroup> - <Copy SourceFiles="%(None.IntFile)" DestinationFiles="%(None.OutFile)" Condition="!Exists(%(None.OutFile)) or (Exists(%(None.IntFile)) and '$([System.IO.File]::ReadAllText(%(None.OutFile)).Replace(`
`, `
`))' != '$([System.IO.File]::ReadAllText(%(None.IntFile)).Replace(`
`, `
`))')"> @@ -153,9 +153,7 @@ </Target> <Target Name="_CleanImportLib" BeforeTargets="CoreClean"> <ItemGroup> - <Clean Include="$(IntDir)importlib.g.h" /> - <Clean Include="$(IntDir)importlib_external.g.h" /> - <Clean Include="$(IntDir)importlib_zipimport.g.h" /> + <Clean Include="%(None.IntFile)" /> </ItemGroup> </Target> </Project> diff --git a/PCbuild/python.vcxproj b/PCbuild/python.vcxproj index 2094420..b58945a 100644 --- a/PCbuild/python.vcxproj +++ b/PCbuild/python.vcxproj @@ -114,7 +114,9 @@ </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> + <Import Project="regen.targets" /> </ImportGroup> + <Target Name="_TriggerPostRegen" AfterTargets="Build" DependsOnTargets="PostBuildRegen" /> <Target Name="ValidateUcrtbase" AfterTargets="AfterBuild" Condition="$(Configuration) != 'PGInstrument' and $(Platform) != 'ARM' and $(Platform) != 'ARM64'"> <PropertyGroup> <UcrtName>ucrtbase</UcrtName> @@ -145,23 +147,4 @@ $(_PGOPath) </PropertyGroup> <WriteLinesToFile File="$(PySourcePath)python.bat" Lines="$(_Content)" Overwrite="true" Condition="'$(_Content)' != '$(_ExistingContent)'" /> </Target> - <Target Name="GenerateLicense" AfterTargets="AfterBuild"> - <ItemGroup> - <LicenseFiles Include="$(PySourcePath)LICENSE; - $(PySourcePath)PC\crtlicense.txt; - $(bz2Dir)LICENSE; - $(opensslOutDir)LICENSE; - $(libffiDir)LICENSE;" /> - <LicenseFiles Include="$(tcltkDir)tcllicense.terms; - $(tcltkDir)tklicense.terms; - $(tcltkDir)tixlicense.terms" Condition="$(IncludeTkinter)" /> - <_LicenseFiles Include="@(LicenseFiles)"> - <Content Condition="Exists(%(FullPath))">$([System.IO.File]::ReadAllText(%(FullPath)))</Content> - </_LicenseFiles> - </ItemGroup> - - <WriteLinesToFile File="$(OutDir)LICENSE.txt" - Overwrite="true" - Lines="@(_LicenseFiles->'%(Content)')" /> - </Target> </Project> diff --git a/PCbuild/regen.targets b/PCbuild/regen.targets index 4d386cf..22667d0 100644 --- a/PCbuild/regen.targets +++ b/PCbuild/regen.targets @@ -73,12 +73,51 @@ </Target> <Target Name="_RegenKeywords" Inputs="@(_KeywordSources)" Outputs="@(_KeywordOutputs)"> - <Message Text="Regenerate @(KeywordOutputs->'%(Filename)%(Extension)',' ')" Importance="high" /> + <Message Text="Regenerate @(_KeywordOutputs->'%(Filename)%(Extension)',' ')" Importance="high" /> <Exec Command="set PYTHONPATH=Tools\peg_generator%0D%0A$(PythonForBuild) -m pegen.keywordgen Grammar\python.gram Grammar\Tokens Lib\keyword.py" WorkingDirectory="$(PySourcePath)" /> </Target> - + <Target Name="Regen" DependsOnTargets="_TouchRegenSources;_RegenPegen;_RegenAST_H;_RegenOpcodes;_RegenTokens;_RegenKeywords"> <Message Text="Generated sources are up to date" Importance="high" /> </Target> + + + <ItemGroup> + <_TestFrozenSources Include="$(PySourcePath)Programs\freeze_test_frozenmain.py; + $(PySourcePath)Programs\test_frozenmain.py; + @(_OpcodeOutputs)" /> + <_TestFrozenOutputs Include="$(PySourcePath)Programs\test_frozenmain.h" /> + <_LicenseSources Include="$(PySourcePath)LICENSE; + $(PySourcePath)PC\crtlicense.txt; + $(bz2Dir)LICENSE; + $(opensslOutDir)LICENSE; + $(libffiDir)LICENSE;" /> + <_LicenseSources Include="$(tcltkDir)tcllicense.terms; + $(tcltkDir)tklicense.terms; + $(tcltkDir)tixlicense.terms" Condition="$(IncludeTkinter)" /> + <_LicenseOutputs Include="$(OutDir)LICENSE.txt" /> + </ItemGroup> + + <Target Name="_RegenTestFrozenmain" Inputs="@(_TestFrozenSources)" Outputs="@(_TestFrozenOutputs)" + Condition="$(Platform) == 'Win32' or $(Platform) == 'x64'"> + <Message Text="Regenerate @(_TestFrozenOutputs->'%(Filename)%(Extension)', ' ')" Importance="high" /> + <Exec Command="$(PythonExe) Programs\freeze_test_frozenmain.py Programs/test_frozenmain.h" + WorkingDirectory="$(PySourcePath)" /> + </Target> + + <Target Name="_RegenLicense" Inputs="@(_LicenseSources)" Outputs="@(_LicenseOutputs)"> + <Message Text="Regenerate @(_LicenseOutputs->'%(Filename)%(Extension)', ' ')" Importance="high" /> + <ItemGroup> + <_Text Include="@(_LicenseFiles)"> + <Content Condition="Exists(%(FullPath))">$([System.IO.File]::ReadAllText(%(FullPath)))</Content> + </_Text> + </ItemGroup> + + <WriteLinesToFile File="@(_LicenseOutputs)" Overwrite="true" Lines="@(_Text->'%(Content)')" /> + </Target> + + <Target Name="PostBuildRegen" DependsOnTargets="_RegenTestFrozenmain;_RegenLicense"> + <Message Text="Other generated files are up to date" Importance="high" /> + </Target> </Project> |