summaryrefslogtreecommitdiffstats
path: root/PCbuild
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@python.org>2021-07-05 15:18:14 (GMT)
committerGitHub <noreply@github.com>2021-07-05 15:18:14 (GMT)
commit1b133ab8412e4f6a53914212df7a7656f376256d (patch)
tree1b06bc2e4efd1c3381b08b28dc17678faf09032a /PCbuild
parent7ac7a0c0f03c60934bc924ee144db170a0e0161f (diff)
downloadcpython-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.vcxproj14
-rw-r--r--PCbuild/python.vcxproj21
-rw-r--r--PCbuild/regen.targets43
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(`&#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 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>