]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-44479: Regenerate test_frozenmain.h and frozen_hello.h during build on Windows...
authorSteve Dower <steve.dower@python.org>
Mon, 5 Jul 2021 15:18:14 +0000 (16:18 +0100)
committerGitHub <noreply@github.com>
Mon, 5 Jul 2021 15:18:14 +0000 (16:18 +0100)
PCbuild/_freeze_importlib.vcxproj
PCbuild/python.vcxproj
PCbuild/regen.targets

index 52d8f1a64bb6b9b1c3b51ab4c0da4435dc6b334e..e437412a161ce56a208b392340a386e046d7cfdf 100644 (file)
       <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">
   <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;`))')">
   </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>
index 2094420a8df3956f5a009641f3facba782f55c1f..b58945a4d19b6cabb0617995d531f48098fbae02 100644 (file)
   </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>
index 4d386cfa5f387f15462076b5275b53eaefbcb0b3..22667d02aaa2c157849c760c9b9b817b279f1b8f 100644 (file)
   </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>