[Python-checkins] bpo-44479: Regenerate test_frozenmain.h and frozen_hello.h during build on Windows (GH-26984)

zooba webhook-mailer at python.org
Mon Jul 5 12:28:16 EDT 2021


https://github.com/python/cpython/commit/f3289a50503ed1a809d77fb03744bdcc7b9f1093
commit: f3289a50503ed1a809d77fb03744bdcc7b9f1093
branch: 3.10
author: Steve Dower <steve.dower at python.org>
committer: zooba <steve.dower at microsoft.com>
date: 2021-07-05T17:28:00+01:00
summary:

bpo-44479: Regenerate test_frozenmain.h and frozen_hello.h during build on Windows (GH-26984)

files:
M PCbuild/_freeze_importlib.vcxproj
M PCbuild/python.vcxproj
M PCbuild/regen.targets

diff --git a/PCbuild/_freeze_importlib.vcxproj b/PCbuild/_freeze_importlib.vcxproj
index 52d8f1a64bb6b9..e437412a161ce5 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(`&#x0D;&#x0A;`, `&#x0A;`))</_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(`&#x0D;&#x0A;`, `&#x0A;`))' != '$([System.IO.File]::ReadAllText(%(None.IntFile)).Replace(`&#x0D;&#x0A;`, `&#x0A;`))')">
@@ -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 2094420a8df395..b58945a4d19b6c 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 4d386cfa5f387f..7c956c4bc58d27 100644
--- a/PCbuild/regen.targets
+++ b/PCbuild/regen.targets
@@ -73,12 +73,44 @@
   </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="_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="_RegenLicense">
+    <Message Text="Other generated files are up to date" Importance="high" />
+  </Target>
 </Project>



More information about the Python-checkins mailing list