summaryrefslogtreecommitdiff
path: root/PCbuild
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@python.org>2021-09-15 18:11:12 +0100
committerGitHub <noreply@github.com>2021-09-15 18:11:12 +0100
commit09b4ad11f323f8702cde795e345b75e0fbb1a9a5 (patch)
treefe54816a9bcabfda7e410e5d23646c0bc8e6d9a0 /PCbuild
parentd897579a80da3f4572d96501c41bec6cacb10d84 (diff)
downloadcpython-git-09b4ad11f323f8702cde795e345b75e0fbb1a9a5.tar.gz
bpo-45188: Windows now regenerates frozen modules at the start of build instead of late (GH-28322)
This will enable us to drop the frozen module header files from the repository. It does currently cause many source files to be built twice, which just takes more time. For whoever comes to fix this in the future, the files shared between freeze_module and pythoncore should be put into a static library that is consumed by both.
Diffstat (limited to 'PCbuild')
-rw-r--r--PCbuild/_freeze_module.vcxproj157
-rw-r--r--PCbuild/pcbuild.proj19
-rw-r--r--PCbuild/pcbuild.sln49
3 files changed, 175 insertions, 50 deletions
diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj
index a0bedf49e6..a87dca75c3 100644
--- a/PCbuild/_freeze_module.vcxproj
+++ b/PCbuild/_freeze_module.vcxproj
@@ -88,24 +88,145 @@
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
- <PreprocessorDefinitions>_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>Py_NO_ENABLE_SHARED;Py_BUILD_CORE;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
+ <AdditionalDependencies>version.lib;shlwapi.lib;ws2_32.lib;pathcch.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\Programs\_freeze_module.c" />
+ <ClCompile Include="..\PC\config_minimal.c" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="pythoncore.vcxproj">
- <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project>
- <Private>true</Private>
- <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
- <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
- <LinkLibraryDependencies>true</LinkLibraryDependencies>
- <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
- </ProjectReference>
+ <ClCompile Include="..\Modules\atexitmodule.c" />
+ <ClCompile Include="..\Modules\faulthandler.c" />
+ <ClCompile Include="..\Modules\gcmodule.c" />
+ <ClCompile Include="..\Modules\getbuildinfo.c" />
+ <ClCompile Include="..\Modules\posixmodule.c" />
+ <ClCompile Include="..\Modules\signalmodule.c" />
+ <ClCompile Include="..\Modules\_tracemalloc.c" />
+ <ClCompile Include="..\Modules\_io\_iomodule.c" />
+ <ClCompile Include="..\Modules\_io\bufferedio.c" />
+ <ClCompile Include="..\Modules\_io\bytesio.c" />
+ <ClCompile Include="..\Modules\_io\fileio.c" />
+ <ClCompile Include="..\Modules\_io\iobase.c" />
+ <ClCompile Include="..\Modules\_io\stringio.c" />
+ <ClCompile Include="..\Modules\_io\textio.c" />
+ <ClCompile Include="..\Modules\_io\winconsoleio.c" />
+ <ClCompile Include="..\Objects\abstract.c" />
+ <ClCompile Include="..\Objects\accu.c" />
+ <ClCompile Include="..\Objects\boolobject.c" />
+ <ClCompile Include="..\Objects\bytearrayobject.c" />
+ <ClCompile Include="..\Objects\bytes_methods.c" />
+ <ClCompile Include="..\Objects\bytesobject.c" />
+ <ClCompile Include="..\Objects\call.c" />
+ <ClCompile Include="..\Objects\capsule.c" />
+ <ClCompile Include="..\Objects\cellobject.c" />
+ <ClCompile Include="..\Objects\classobject.c" />
+ <ClCompile Include="..\Objects\codeobject.c" />
+ <ClCompile Include="..\Objects\complexobject.c" />
+ <ClCompile Include="..\Objects\descrobject.c" />
+ <ClCompile Include="..\Objects\dictobject.c" />
+ <ClCompile Include="..\Objects\enumobject.c" />
+ <ClCompile Include="..\Objects\exceptions.c" />
+ <ClCompile Include="..\Objects\fileobject.c" />
+ <ClCompile Include="..\Objects\floatobject.c" />
+ <ClCompile Include="..\Objects\frameobject.c" />
+ <ClCompile Include="..\Objects\funcobject.c" />
+ <ClCompile Include="..\Objects\genericaliasobject.c" />
+ <ClCompile Include="..\Objects\genobject.c" />
+ <ClCompile Include="..\Objects\interpreteridobject.c" />
+ <ClCompile Include="..\Objects\iterobject.c" />
+ <ClCompile Include="..\Objects\listobject.c" />
+ <ClCompile Include="..\Objects\longobject.c" />
+ <ClCompile Include="..\Objects\memoryobject.c" />
+ <ClCompile Include="..\Objects\methodobject.c" />
+ <ClCompile Include="..\Objects\moduleobject.c" />
+ <ClCompile Include="..\Objects\namespaceobject.c" />
+ <ClCompile Include="..\Objects\object.c" />
+ <ClCompile Include="..\Objects\obmalloc.c" />
+ <ClCompile Include="..\Objects\odictobject.c" />
+ <ClCompile Include="..\Objects\picklebufobject.c" />
+ <ClCompile Include="..\Objects\rangeobject.c" />
+ <ClCompile Include="..\Objects\setobject.c" />
+ <ClCompile Include="..\Objects\sliceobject.c" />
+ <ClCompile Include="..\Objects\structseq.c" />
+ <ClCompile Include="..\Objects\tupleobject.c" />
+ <ClCompile Include="..\Objects\typeobject.c" />
+ <ClCompile Include="..\Objects\unicodectype.c" />
+ <ClCompile Include="..\Objects\unicodeobject.c" />
+ <ClCompile Include="..\Objects\unionobject.c" />
+ <ClCompile Include="..\Objects\weakrefobject.c" />
+ <ClCompile Include="..\Parser\myreadline.c" />
+ <ClCompile Include="..\Parser\parser.c" />
+ <ClCompile Include="..\Parser\peg_api.c" />
+ <ClCompile Include="..\Parser\pegen.c" />
+ <ClCompile Include="..\Parser\string_parser.c" />
+ <ClCompile Include="..\Parser\token.c" />
+ <ClCompile Include="..\Parser\tokenizer.c" />
+ <ClCompile Include="..\PC\getpathp.c" />
+ <ClCompile Include="..\PC\invalid_parameter_handler.c" />
+ <ClCompile Include="..\PC\msvcrtmodule.c" />
+ <ClCompile Include="..\PC\winreg.c" />
+ <ClCompile Include="..\Python\_warnings.c" />
+ <ClCompile Include="..\Python\asdl.c" />
+ <ClCompile Include="..\Python\ast.c" />
+ <ClCompile Include="..\Python\ast_opt.c" />
+ <ClCompile Include="..\Python\ast_unparse.c" />
+ <ClCompile Include="..\Python\bltinmodule.c" />
+ <ClCompile Include="..\Python\bootstrap_hash.c" />
+ <ClCompile Include="..\Python\ceval.c" />
+ <ClCompile Include="..\Python\codecs.c" />
+ <ClCompile Include="..\Python\compile.c" />
+ <ClCompile Include="..\Python\context.c" />
+ <ClCompile Include="..\Python\dtoa.c" />
+ <ClCompile Include="..\Python\dynamic_annotations.c" />
+ <ClCompile Include="..\Python\dynload_win.c" />
+ <ClCompile Include="..\Python\errors.c" />
+ <ClCompile Include="..\Python\fileutils.c" />
+ <ClCompile Include="..\Python\formatter_unicode.c" />
+ <ClCompile Include="..\Python\frame.c" />
+ <ClCompile Include="..\Python\future.c" />
+ <ClCompile Include="..\Python\getargs.c" />
+ <ClCompile Include="..\Python\getcompiler.c" />
+ <ClCompile Include="..\Python\getcopyright.c" />
+ <ClCompile Include="..\Python\getopt.c" />
+ <ClCompile Include="..\Python\getplatform.c" />
+ <ClCompile Include="..\Python\getversion.c" />
+ <ClCompile Include="..\Python\hamt.c" />
+ <ClCompile Include="..\Python\hashtable.c" />
+ <ClCompile Include="..\Python\import.c" />
+ <ClCompile Include="..\Python\importdl.c" />
+ <ClCompile Include="..\Python\initconfig.c" />
+ <ClCompile Include="..\Python\marshal.c" />
+ <ClCompile Include="..\Python\modsupport.c" />
+ <ClCompile Include="..\Python\mysnprintf.c" />
+ <ClCompile Include="..\Python\mystrtoul.c" />
+ <ClCompile Include="..\Python\pathconfig.c" />
+ <ClCompile Include="..\Python\preconfig.c" />
+ <ClCompile Include="..\Python\pyarena.c" />
+ <ClCompile Include="..\Python\pyctype.c" />
+ <ClCompile Include="..\Python\pyfpe.c" />
+ <ClCompile Include="..\Python\pyhash.c" />
+ <ClCompile Include="..\Python\pylifecycle.c" />
+ <ClCompile Include="..\Python\pymath.c" />
+ <ClCompile Include="..\Python\pystate.c" />
+ <ClCompile Include="..\Python\pystrcmp.c" />
+ <ClCompile Include="..\Python\pystrhex.c" />
+ <ClCompile Include="..\Python\pystrtod.c" />
+ <ClCompile Include="..\Python\Python-ast.c" />
+ <ClCompile Include="..\Python\pythonrun.c" />
+ <ClCompile Include="..\Python\Python-tokenize.c" />
+ <ClCompile Include="..\Python\pytime.c" />
+ <ClCompile Include="..\Python\specialize.c" />
+ <ClCompile Include="..\Python\structmember.c" />
+ <ClCompile Include="..\Python\suggestions.c" />
+ <ClCompile Include="..\Python\symtable.c" />
+ <ClCompile Include="..\Python\sysmodule.c" />
+ <ClCompile Include="..\Python\thread.c" />
+ <ClCompile Include="..\Python\traceback.c" />
</ItemGroup>
<ItemGroup>
<!-- BEGIN frozen modules -->
@@ -126,7 +247,7 @@
</None>
<None Include="..\Tools\freeze\flag.py">
<ModName>hello</ModName>
- <IntFile>$(IntDir)ello.g.h</IntFile>
+ <IntFile>$(IntDir)hello.g.h</IntFile>
<OutFile>$(PySourcePath)Python\frozen_modules\hello.h</OutFile>
</None>
<!-- END frozen modules -->
@@ -134,9 +255,9 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
- <Target Name="_RebuildFrozen">
+ <Target Name="_RebuildFrozen" AfterTargets="AfterBuild" Condition="$(Configuration) != 'PGUpdate'">
<Exec Command='"$(TargetPath)" "%(None.ModName)" "%(None.FullPath)" "%(None.IntFile)"' />
-
+
<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;`))')">
@@ -145,18 +266,8 @@
<Message Text="Updated files: @(_Updated->'%(Filename)%(Extension)',', ')"
Condition="'@(_Updated)' != ''" Importance="high" />
- <Warning Text="Frozen modules (e.g. importlib) were updated. Please rebuild to pick up the changes.%0D%0A%0D%0AIf you are not developing on Windows but you see this error on a continuous integration build, please run 'make regen-all' and commit anything that changes."
- Condition="'@(_Updated)' != '' and $(Configuration) == 'Debug'" />
- <Error Text="Frozen (e.g. importlib) files were updated. Please rebuild to pick up the changes.%0D%0A%0D%0AIf you are not developing on Windows but you see this error on a continuous integration build, please run 'make regen-all' and commit anything that changes."
- Condition="'@(_Updated)' != '' and $(Configuration) == 'Release'" />
- </Target>
- <Target Name="RebuildFrozen" AfterTargets="AfterBuild" Condition="$(Configuration) == 'Debug' or $(Configuration) == 'Release'"
- DependsOnTargets="_RebuildFrozen">
- </Target>
- <Target Name="RebuildImportLib" AfterTargets="AfterBuild" Condition="$(Configuration) == 'Debug' or $(Configuration) == 'Release'"
- DependsOnTargets="_RebuildFrozen">
</Target>
- <Target Name="_CleanFrozen" BeforeTargets="CoreClean">
+ <Target Name="_CleanFrozen" BeforeTargets="CoreClean" Condition="$(Configuration) != 'PGUpdate'">
<ItemGroup>
<Clean Include="%(None.IntFile)" />
</ItemGroup>
diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj
index f464ad3b18..b3cbd471c6 100644
--- a/PCbuild/pcbuild.proj
+++ b/PCbuild/pcbuild.proj
@@ -14,6 +14,18 @@
</PropertyGroup>
<ItemDefinitionGroup>
+ <FreezeProjects>
+ <Platform>$(Platform)</Platform>
+ <Platform Condition="$(Platform) == 'ARM'">Win32</Platform>
+ <Platform Condition="$(Platform) == 'ARM64'">x64</Platform>
+ <Configuration>$(Configuration)</Configuration>
+ <Configuration Condition="$(Configuration) == 'PGInstrument'">Release</Configuration>
+ <Properties></Properties>
+ <BuildTarget>Build</BuildTarget>
+ <CleanTarget>Clean</CleanTarget>
+ <CleanAllTarget>CleanAll</CleanAllTarget>
+ <BuildInParallel>false</BuildInParallel>
+ </FreezeProjects>
<Projects>
<Platform>$(Platform)</Platform>
<Configuration>$(Configuration)</Configuration>
@@ -73,7 +85,7 @@
</Projects>
<!-- _freeze_module -->
- <Projects2 Condition="$(Platform) != 'ARM' and $(Platform) != 'ARM64'" Include="_freeze_module.vcxproj" />
+ <FreezeProjects Include="_freeze_module.vcxproj" />
<!-- python[w].exe -->
<Projects2 Include="python.vcxproj;pythonw.vcxproj" />
<Projects2 Include="python_uwp.vcxproj;pythonw_uwp.vcxproj" Condition="$(IncludeUwp)" />
@@ -82,6 +94,11 @@
</ItemGroup>
<Target Name="Build">
+ <MSBuild Projects="@(FreezeProjects)"
+ Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
+ BuildInParallel="%(BuildInParallel)"
+ StopOnFirstFailure="true"
+ Targets="%(BuildTarget)" />
<MSBuild Projects="@(Projects)"
Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
BuildInParallel="%(BuildInParallel)"
diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln
index c774e04971..3629a8508a 100644
--- a/PCbuild/pcbuild.sln
+++ b/PCbuild/pcbuild.sln
@@ -14,6 +14,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcxproj",
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcxproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}"
+ ProjectSection(ProjectDependencies) = postProject
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC} = {19C0C13F-47CA-4432-AFF3-799A296A4DDC}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythonw", "pythonw.vcxproj", "{F4229CC3-873C-49AE-9729-DD308ED4CD4A}"
EndProject
@@ -793,22 +796,6 @@ Global
{D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|Win32.Build.0 = Release|Win32
{D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.ActiveCfg = Release|x64
{D06B6426-4762-44CC-8BAD-D79052507F2F}.Release|x64.Build.0 = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|ARM.ActiveCfg = Debug|ARM
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|ARM64.ActiveCfg = Debug|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|Win32.ActiveCfg = Debug|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Debug|x64.ActiveCfg = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|ARM.ActiveCfg = PGInstrument|ARM
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|ARM64.ActiveCfg = PGInstrument|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGInstrument|x64.ActiveCfg = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|ARM.ActiveCfg = PGUpdate|ARM
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|ARM64.ActiveCfg = PGUpdate|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.PGUpdate|x64.ActiveCfg = Release|x64
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|ARM.ActiveCfg = Release|ARM
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|ARM64.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|Win32.ActiveCfg = Release|Win32
- {EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}.Release|x64.ActiveCfg = Release|x64
{447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|ARM.ActiveCfg = Debug|ARM
{447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|ARM.Build.0 = Debug|ARM
{447F05A8-F581-4CAC-A466-5AC7936E207E}.Debug|ARM64.ActiveCfg = Debug|ARM64
@@ -1059,20 +1046,30 @@ Global
{1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Release|Win32.Build.0 = Release|Win32
{1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Release|x64.ActiveCfg = Release|x64
{1D4B18D3-7C12-4ECB-9179-8531FF876CE6}.Release|x64.Build.0 = Release|x64
- {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|ARM.ActiveCfg = Debug|ARM
- {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|ARM.ActiveCfg = Debug|Win32
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|ARM.Build.0 = Debug|Win32
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|ARM64.ActiveCfg = Debug|x64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|ARM64.Build.0 = Debug|x64
{19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|Win32.Build.0 = Debug|Win32
{19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|x64.ActiveCfg = Debug|x64
- {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|ARM.ActiveCfg = PGInstrument|ARM
- {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|ARM64.ActiveCfg = PGInstrument|ARM64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Debug|x64.Build.0 = Debug|x64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|ARM.ActiveCfg = Release|Win32
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|ARM.Build.0 = Release|Win32
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|ARM64.ActiveCfg = Release|x64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|ARM64.Build.0 = Release|x64
{19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|Win32.ActiveCfg = Release|Win32
- {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|x64.ActiveCfg = Release|Win32
- {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGUpdate|ARM.ActiveCfg = PGUpdate|ARM
- {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGUpdate|ARM64.ActiveCfg = PGUpdate|ARM64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|Win32.Build.0 = Release|Win32
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|x64.ActiveCfg = Release|x64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGInstrument|x64.Build.0 = Release|x64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGUpdate|ARM.ActiveCfg = Release|Win32
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGUpdate|ARM64.ActiveCfg = Release|x64
{19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGUpdate|Win32.ActiveCfg = Release|Win32
- {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGUpdate|x64.ActiveCfg = Release|Win32
- {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|ARM.ActiveCfg = Release|ARM
- {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|ARM64.ActiveCfg = Release|ARM64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.PGUpdate|x64.ActiveCfg = Release|x64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|ARM.ActiveCfg = Release|Win32
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|ARM.Build.0 = Release|Win32
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|ARM64.ActiveCfg = Release|x64
+ {19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|ARM64.Build.0 = Release|x64
{19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|Win32.ActiveCfg = Release|Win32
{19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|Win32.Build.0 = Release|Win32
{19C0C13F-47CA-4432-AFF3-799A296A4DDC}.Release|x64.ActiveCfg = Release|x64