17db96d56Sopenharmony_ci<?xml version="1.0" encoding="utf-8"?> 27db96d56Sopenharmony_ci<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 37db96d56Sopenharmony_ci <PropertyGroup> 47db96d56Sopenharmony_ci <__Python_Props_Imported>true</__Python_Props_Imported> 57db96d56Sopenharmony_ci <Platform Condition="'$(Platform)' == ''">Win32</Platform> 67db96d56Sopenharmony_ci <Configuration Condition="'$(Configuration)' == ''">Release</Configuration> 77db96d56Sopenharmony_ci <!-- 87db96d56Sopenharmony_ci Use the latest available version of Visual Studio to build. To override 97db96d56Sopenharmony_ci this and build with an earlier version, pass "/p:PlatformToolset=v100" 107db96d56Sopenharmony_ci (for example) when building. 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ci We set BasePlatformToolset for ICC's benefit, it's otherwise ignored. 137db96d56Sopenharmony_ci --> 147db96d56Sopenharmony_ci <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VisualStudioVersion)' == '17.0'">v143</BasePlatformToolset> 157db96d56Sopenharmony_ci <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VisualStudioVersion)' == '16.0'">v142</BasePlatformToolset> 167db96d56Sopenharmony_ci <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and ('$(MSBuildToolsVersion)' == '15.0' or '$(VisualStudioVersion)' == '15.0')">v141</BasePlatformToolset> 177db96d56Sopenharmony_ci <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VCTargetsPath14)' != ''">v140</BasePlatformToolset> 187db96d56Sopenharmony_ci <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VCTargetsPath12)' != ''">v120</BasePlatformToolset> 197db96d56Sopenharmony_ci <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VCTargetsPath11)' != ''">v110</BasePlatformToolset> 207db96d56Sopenharmony_ci <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VCTargetsPath10)' != ''">v100</BasePlatformToolset> 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ci <PlatformToolset Condition="'$(PlatformToolset)' == ''">$(BasePlatformToolset)</PlatformToolset> 237db96d56Sopenharmony_ci <ICCBuild>false</ICCBuild> 247db96d56Sopenharmony_ci <ICCBuild Condition="$(PlatformToolset.StartsWith(`Intel C++ Compiler`))">true</ICCBuild> 257db96d56Sopenharmony_ci 267db96d56Sopenharmony_ci <!-- 277db96d56Sopenharmony_ci Convincing MSVC/MSBuild to prefer our platform names is too difficult, 287db96d56Sopenharmony_ci so we define our own constant ArchName and use wherever we need it. 297db96d56Sopenharmony_ci --> 307db96d56Sopenharmony_ci <ArchName Condition="'$(ArchName)' == '' and $(Platform) == 'x64'">amd64</ArchName> 317db96d56Sopenharmony_ci <ArchName Condition="'$(ArchName)' == '' and $(Platform) == 'ARM'">arm32</ArchName> 327db96d56Sopenharmony_ci <ArchName Condition="'$(ArchName)' == '' and $(Platform) == 'ARM64'">arm64</ArchName> 337db96d56Sopenharmony_ci <ArchName Condition="'$(ArchName)' == ''">win32</ArchName> 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci <!-- Root directory of the repository --> 367db96d56Sopenharmony_ci <PySourcePath Condition="'$(PySourcePath)' == ''">$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)\..\))</PySourcePath> 377db96d56Sopenharmony_ci <PySourcePath Condition="!HasTrailingSlash($(PySourcePath))">$(PySourcePath)\</PySourcePath> 387db96d56Sopenharmony_ci 397db96d56Sopenharmony_ci <!-- Directory where build outputs are put --> 407db96d56Sopenharmony_ci <BuildPath32 Condition="'$(Py_OutDir)' == ''">$(PySourcePath)PCbuild\win32\</BuildPath32> 417db96d56Sopenharmony_ci <BuildPath32 Condition="'$(Py_OutDir)' != ''">$(Py_OutDir)\win32\</BuildPath32> 427db96d56Sopenharmony_ci <BuildPath64 Condition="'$(Py_OutDir)' == ''">$(PySourcePath)PCbuild\amd64\</BuildPath64> 437db96d56Sopenharmony_ci <BuildPath64 Condition="'$(Py_OutDir)' != ''">$(Py_OutDir)\amd64\</BuildPath64> 447db96d56Sopenharmony_ci <BuildPathArm32 Condition="'$(Py_OutDir)' == ''">$(PySourcePath)PCbuild\arm32\</BuildPathArm32> 457db96d56Sopenharmony_ci <BuildPathArm32 Condition="'$(Py_OutDir)' != ''">$(Py_OutDir)\arm32\</BuildPathArm32> 467db96d56Sopenharmony_ci <BuildPathArm64 Condition="'$(Py_OutDir)' == ''">$(PySourcePath)PCbuild\arm64\</BuildPathArm64> 477db96d56Sopenharmony_ci <BuildPathArm64 Condition="'$(Py_OutDir)' != ''">$(Py_OutDir)\arm64\</BuildPathArm64> 487db96d56Sopenharmony_ci <BuildPath Condition="'$(ArchName)' == 'win32'">$(BuildPath32)</BuildPath> 497db96d56Sopenharmony_ci <BuildPath Condition="'$(ArchName)' == 'amd64'">$(BuildPath64)</BuildPath> 507db96d56Sopenharmony_ci <BuildPath Condition="'$(ArchName)' == 'arm32'">$(BuildPathArm32)</BuildPath> 517db96d56Sopenharmony_ci <BuildPath Condition="'$(ArchName)' == 'arm64'">$(BuildPathArm64)</BuildPath> 527db96d56Sopenharmony_ci <BuildPath Condition="'$(BuildPath)' == ''">$(PySourcePath)PCbuild\$(ArchName)\</BuildPath> 537db96d56Sopenharmony_ci <BuildPath Condition="!HasTrailingSlash($(BuildPath))">$(BuildPath)\</BuildPath> 547db96d56Sopenharmony_ci <BuildPath Condition="$(Configuration) == 'PGInstrument'">$(BuildPath)instrumented\</BuildPath> 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ci <!-- VPATH definition (escaped) --> 577db96d56Sopenharmony_ci <PyVPath Condition="$(Configuration) != 'PGInstrument'">..\\..</PyVPath> 587db96d56Sopenharmony_ci <PyVPath Condition="$(Configuration) == 'PGInstrument'">..\\..\\..</PyVPath> 597db96d56Sopenharmony_ci </PropertyGroup> 607db96d56Sopenharmony_ci 617db96d56Sopenharmony_ci <!-- Directories of external projects. tcltk is handled in tcltk.props --> 627db96d56Sopenharmony_ci <PropertyGroup> 637db96d56Sopenharmony_ci <ExternalsDir Condition="$(ExternalsDir) == ''">$(EXTERNALS_DIR)</ExternalsDir> 647db96d56Sopenharmony_ci <ExternalsDir Condition="$(ExternalsDir) == ''">$([System.IO.Path]::GetFullPath(`$(PySourcePath)externals`))</ExternalsDir> 657db96d56Sopenharmony_ci <ExternalsDir Condition="!HasTrailingSlash($(ExternalsDir))">$(ExternalsDir)\</ExternalsDir> 667db96d56Sopenharmony_ci </PropertyGroup> 677db96d56Sopenharmony_ci 687db96d56Sopenharmony_ci <Import Project="$(ExternalProps)" Condition="$(ExternalProps) != '' and Exists('$(ExternalProps)')" /> 697db96d56Sopenharmony_ci 707db96d56Sopenharmony_ci <PropertyGroup> 717db96d56Sopenharmony_ci <sqlite3Dir Condition="$(sqlite3Dir) == ''">$(ExternalsDir)sqlite-3.42.0.0\</sqlite3Dir> 727db96d56Sopenharmony_ci <bz2Dir Condition="$(bz2Dir) == ''">$(ExternalsDir)bzip2-1.0.8\</bz2Dir> 737db96d56Sopenharmony_ci <lzmaDir Condition="$(lzmaDir) == ''">$(ExternalsDir)xz-5.2.5\</lzmaDir> 747db96d56Sopenharmony_ci <libffiDir Condition="$(libffiDir) == ''">$(ExternalsDir)libffi-3.4.4\</libffiDir> 757db96d56Sopenharmony_ci <libffiOutDir Condition="$(libffiOutDir) == ''">$(libffiDir)$(ArchName)\</libffiOutDir> 767db96d56Sopenharmony_ci <libffiIncludeDir Condition="$(libffiIncludeDir) == ''">$(libffiOutDir)include</libffiIncludeDir> 777db96d56Sopenharmony_ci <opensslDir Condition="$(opensslDir) == ''">$(ExternalsDir)openssl-1.1.1u\</opensslDir> 787db96d56Sopenharmony_ci <opensslOutDir Condition="$(opensslOutDir) == ''">$(ExternalsDir)openssl-bin-1.1.1u\$(ArchName)\</opensslOutDir> 797db96d56Sopenharmony_ci <opensslIncludeDir Condition="$(opensslIncludeDir) == ''">$(opensslOutDir)include</opensslIncludeDir> 807db96d56Sopenharmony_ci <nasmDir Condition="$(nasmDir) == ''">$(ExternalsDir)\nasm-2.11.06\</nasmDir> 817db96d56Sopenharmony_ci <zlibDir Condition="$(zlibDir) == ''">$(ExternalsDir)\zlib-1.2.13\</zlibDir> 827db96d56Sopenharmony_ci </PropertyGroup> 837db96d56Sopenharmony_ci 847db96d56Sopenharmony_ci <PropertyGroup> 857db96d56Sopenharmony_ci <!-- Suffix for all binaries when building for debug --> 867db96d56Sopenharmony_ci <PyDebugExt Condition="'$(PyDebugExt)' == '' and $(Configuration) == 'Debug'">_d</PyDebugExt> 877db96d56Sopenharmony_ci 887db96d56Sopenharmony_ci <!-- Suffix for versions/keys when building with test markers --> 897db96d56Sopenharmony_ci <PyTestExt Condition="$(UseTestMarker) == 'true'">-test</PyTestExt> 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_ci <!-- Suffix for versions/keys when building for particular platforms --> 927db96d56Sopenharmony_ci <PyArchExt Condition="'$(ArchName)' == 'win32'">-32</PyArchExt> 937db96d56Sopenharmony_ci <PyArchExt Condition="'$(ArchName)' == 'arm32'">-arm32</PyArchExt> 947db96d56Sopenharmony_ci <PyArchExt Condition="'$(ArchName)' == 'arm64'">-arm64</PyArchExt> 957db96d56Sopenharmony_ci 967db96d56Sopenharmony_ci <!-- Full path of the resulting python.exe binary --> 977db96d56Sopenharmony_ci <PythonExe Condition="'$(PythonExe)' == ''">$(BuildPath)python$(PyDebugExt).exe</PythonExe> 987db96d56Sopenharmony_ci 997db96d56Sopenharmony_ci <!-- Include Tkinter by default --> 1007db96d56Sopenharmony_ci <IncludeTkinter Condition="'$(IncludeTkinter)' == ''">true</IncludeTkinter> 1017db96d56Sopenharmony_ci </PropertyGroup> 1027db96d56Sopenharmony_ci 1037db96d56Sopenharmony_ci <PropertyGroup Condition="'$(Platform)'=='ARM'" Label="ArmConfiguration"> 1047db96d56Sopenharmony_ci <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> 1057db96d56Sopenharmony_ci </PropertyGroup> 1067db96d56Sopenharmony_ci 1077db96d56Sopenharmony_ci <PropertyGroup Condition="'$(Platform)'=='ARM64'" Label="Arm64Configuration"> 1087db96d56Sopenharmony_ci <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> 1097db96d56Sopenharmony_ci </PropertyGroup> 1107db96d56Sopenharmony_ci 1117db96d56Sopenharmony_ci <PropertyGroup Condition="$(DefaultWindowsSDKVersion) == ''"> 1127db96d56Sopenharmony_ci <!-- 1137db96d56Sopenharmony_ci Attempt to select the latest installed WinSDK. If we don't find any, then we will 1147db96d56Sopenharmony_ci let the MSBuild targets determine which one it wants to use (typically the earliest 1157db96d56Sopenharmony_ci possible version). Since we limit WINVER to Windows 7 anyway, it doesn't really 1167db96d56Sopenharmony_ci matter which WinSDK version we use. 1177db96d56Sopenharmony_ci --> 1187db96d56Sopenharmony_ci <_RegistryVersion>$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion)</_RegistryVersion> 1197db96d56Sopenharmony_ci <_RegistryVersion Condition="$(_RegistryVersion) == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion)</_RegistryVersion> 1207db96d56Sopenharmony_ci <!-- Sometimes the version in the registry has to .0 suffix, and sometimes it doesn't. Check and add it --> 1217db96d56Sopenharmony_ci <_RegistryVersion Condition="$(_RegistryVersion) != '' and !$(_RegistryVersion.EndsWith('.0'))">$(_RegistryVersion).0</_RegistryVersion> 1227db96d56Sopenharmony_ci 1237db96d56Sopenharmony_ci <!-- The minimum allowed SDK version to use for building --> 1247db96d56Sopenharmony_ci <DefaultWindowsSDKVersion>10.0.10586.0</DefaultWindowsSDKVersion> 1257db96d56Sopenharmony_ci <DefaultWindowsSDKVersion Condition="$(_RegistryVersion) != '' and $([System.Version]::Parse($(_RegistryVersion))) > $([System.Version]::Parse($(DefaultWindowsSDKVersion)))">$(_RegistryVersion)</DefaultWindowsSDKVersion> 1267db96d56Sopenharmony_ci </PropertyGroup> 1277db96d56Sopenharmony_ci 1287db96d56Sopenharmony_ci <Target Name="_CheckWindowsSDKFound" BeforeTargets="_CheckWindowsSDKInstalled" Condition="$(_RegistryVersion) == ''"> 1297db96d56Sopenharmony_ci <PropertyGroup> 1307db96d56Sopenharmony_ci <_Message>Failed to locate a Windows SDK installation.</_Message> 1317db96d56Sopenharmony_ci <_Message>$(_Message) If the build fails, please use the Visual Studio Installer to install the Windows SDK.</_Message> 1327db96d56Sopenharmony_ci <_Message>$(_Message) (Ignore the version number specified in the error message and select the latest.)</_Message> 1337db96d56Sopenharmony_ci </PropertyGroup> 1347db96d56Sopenharmony_ci <Warning Text="$(_Message)" /> 1357db96d56Sopenharmony_ci </Target> 1367db96d56Sopenharmony_ci 1377db96d56Sopenharmony_ci <PropertyGroup Condition="$(WindowsTargetPlatformVersion) == ''"> 1387db96d56Sopenharmony_ci <WindowsTargetPlatformVersion>$(DefaultWindowsSDKVersion)</WindowsTargetPlatformVersion> 1397db96d56Sopenharmony_ci </PropertyGroup> 1407db96d56Sopenharmony_ci 1417db96d56Sopenharmony_ci <PropertyGroup Condition="'$(OverrideVersion)' == ''"> 1427db96d56Sopenharmony_ci <!-- 1437db96d56Sopenharmony_ci Read version information from Include\patchlevel.h. The following properties are set: 1447db96d56Sopenharmony_ci 1457db96d56Sopenharmony_ci MajorVersionNumber - the '3' in '3.5.2a1' 1467db96d56Sopenharmony_ci MinorVersionNumber - the '5' in '3.5.2a1' 1477db96d56Sopenharmony_ci MicroVersionNumber - the '2' in '3.5.2a1' 1487db96d56Sopenharmony_ci ReleaseSerial - the '1' in '3.5.2a1' 1497db96d56Sopenharmony_ci ReleaseLevelName - the 'a1' in '3.5.2a1' 1507db96d56Sopenharmony_ci PythonVersionNumber - '3.5.2' for '3.5.2a1' 1517db96d56Sopenharmony_ci PythonVersion - '3.5.2a1' 1527db96d56Sopenharmony_ci PythonVersionHex - 0x030502a1 for '3.5.2a1' 1537db96d56Sopenharmony_ci ReleaseLevelNumber - 10 for alpha, 11 for beta, 12 for RC (gamma), and 15 for final 1547db96d56Sopenharmony_ci Field3Value - 2101 for '3.5.2a1' (== 1000*2 + 10*10 ('a') + 1) 1557db96d56Sopenharmony_ci --> 1567db96d56Sopenharmony_ci <_PatchLevelContent>$([System.IO.File]::ReadAllText(`$(PySourcePath)Include\patchlevel.h`))</_PatchLevelContent> 1577db96d56Sopenharmony_ci <MajorVersionNumber>$([System.Text.RegularExpressions.Regex]::Match($(_PatchLevelContent), `define\s+PY_MAJOR_VERSION\s+(\d+)`).Groups[1].Value)</MajorVersionNumber> 1587db96d56Sopenharmony_ci <MinorVersionNumber>$([System.Text.RegularExpressions.Regex]::Match($(_PatchLevelContent), `define\s+PY_MINOR_VERSION\s+(\d+)`).Groups[1].Value)</MinorVersionNumber> 1597db96d56Sopenharmony_ci <MicroVersionNumber>$([System.Text.RegularExpressions.Regex]::Match($(_PatchLevelContent), `define\s+PY_MICRO_VERSION\s+(\d+)`).Groups[1].Value)</MicroVersionNumber> 1607db96d56Sopenharmony_ci <_ReleaseLevel>$([System.Text.RegularExpressions.Regex]::Match($(_PatchLevelContent), `define\s+PY_RELEASE_LEVEL\s+PY_RELEASE_LEVEL_(\w+)`).Groups[1].Value)</_ReleaseLevel> 1617db96d56Sopenharmony_ci <ReleaseSerial>$([System.Text.RegularExpressions.Regex]::Match($(_PatchLevelContent), `define\s+PY_RELEASE_SERIAL\s+(\d+)`).Groups[1].Value)</ReleaseSerial> 1627db96d56Sopenharmony_ci <ReleaseLevelNumber>15</ReleaseLevelNumber> 1637db96d56Sopenharmony_ci <ReleaseLevelNumber Condition="$(_ReleaseLevel) == 'ALPHA'">10</ReleaseLevelNumber> 1647db96d56Sopenharmony_ci <ReleaseLevelNumber Condition="$(_ReleaseLevel) == 'BETA'">11</ReleaseLevelNumber> 1657db96d56Sopenharmony_ci <ReleaseLevelNumber Condition="$(_ReleaseLevel) == 'GAMMA'">12</ReleaseLevelNumber> 1667db96d56Sopenharmony_ci <ReleaseLevelName Condition="$(_ReleaseLevel) == 'ALPHA'">a$(ReleaseSerial)</ReleaseLevelName> 1677db96d56Sopenharmony_ci <ReleaseLevelName Condition="$(_ReleaseLevel) == 'BETA'">b$(ReleaseSerial)</ReleaseLevelName> 1687db96d56Sopenharmony_ci <ReleaseLevelName Condition="$(_ReleaseLevel) == 'GAMMA'">rc$(ReleaseSerial)</ReleaseLevelName> 1697db96d56Sopenharmony_ci </PropertyGroup> 1707db96d56Sopenharmony_ci 1717db96d56Sopenharmony_ci <PropertyGroup Condition="'$(OverrideVersion)' != ''"> 1727db96d56Sopenharmony_ci <!-- 1737db96d56Sopenharmony_ci Override the version number when building by specifying OverrideVersion. 1747db96d56Sopenharmony_ci For example: 1757db96d56Sopenharmony_ci 1767db96d56Sopenharmony_ci PCbuild\build.bat "/p:OverrideVersion=3.5.2a1" 1777db96d56Sopenharmony_ci 1787db96d56Sopenharmony_ci Use the -V option to check your version is valid: 1797db96d56Sopenharmony_ci 1807db96d56Sopenharmony_ci PCbuild\build.bat -V "/p:OverrideVersion=3.5.2a1" 1817db96d56Sopenharmony_ci PythonVersionNumber: 3.5.2 1827db96d56Sopenharmony_ci PythonVersion: 3.5.2a1 1837db96d56Sopenharmony_ci PythonVersionHex: 0x030502A1 1847db96d56Sopenharmony_ci Field3Value: 2101 1857db96d56Sopenharmony_ci 1867db96d56Sopenharmony_ci Note that this only affects the version numbers embedded in resources and 1877db96d56Sopenharmony_ci installers, but not sys.version. 1887db96d56Sopenharmony_ci --> 1897db96d56Sopenharmony_ci <MajorVersionNumber>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[1].Value)</MajorVersionNumber> 1907db96d56Sopenharmony_ci <MinorVersionNumber>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[2].Value)</MinorVersionNumber> 1917db96d56Sopenharmony_ci <MicroVersionNumber>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[3].Value)</MicroVersionNumber> 1927db96d56Sopenharmony_ci <ReleaseLevelName>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[4].Value)</ReleaseLevelName> 1937db96d56Sopenharmony_ci <_ReleaseLevel>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[5].Value)</_ReleaseLevel> 1947db96d56Sopenharmony_ci <ReleaseSerial>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[6].Value)</ReleaseSerial> 1957db96d56Sopenharmony_ci <ReleaseSerial Condition="'$(ReleaseSerial)' == ''">0</ReleaseSerial> 1967db96d56Sopenharmony_ci <ReleaseLevelNumber>15</ReleaseLevelNumber> 1977db96d56Sopenharmony_ci <ReleaseLevelNumber Condition="$(_ReleaseLevel) == 'a'">10</ReleaseLevelNumber> 1987db96d56Sopenharmony_ci <ReleaseLevelNumber Condition="$(_ReleaseLevel) == 'b'">11</ReleaseLevelNumber> 1997db96d56Sopenharmony_ci <ReleaseLevelNumber Condition="$(_ReleaseLevel) == 'rc'">12</ReleaseLevelNumber> 2007db96d56Sopenharmony_ci </PropertyGroup> 2017db96d56Sopenharmony_ci 2027db96d56Sopenharmony_ci <PropertyGroup> 2037db96d56Sopenharmony_ci <PythonVersionNumber>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)</PythonVersionNumber> 2047db96d56Sopenharmony_ci <PythonVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)$(ReleaseLevelName)</PythonVersion> 2057db96d56Sopenharmony_ci <PythonVersionHex>$([msbuild]::BitwiseOr( 2067db96d56Sopenharmony_ci $([msbuild]::Multiply($(MajorVersionNumber), 16777216)), 2077db96d56Sopenharmony_ci $([msbuild]::BitwiseOr( 2087db96d56Sopenharmony_ci $([msbuild]::Multiply($(MinorVersionNumber), 65536)), 2097db96d56Sopenharmony_ci $([msbuild]::BitwiseOr( 2107db96d56Sopenharmony_ci $([msbuild]::Multiply($(MicroVersionNumber), 256)), 2117db96d56Sopenharmony_ci $([msbuild]::BitwiseOr( 2127db96d56Sopenharmony_ci $([msbuild]::Multiply($(ReleaseLevelNumber), 16)), 2137db96d56Sopenharmony_ci $(ReleaseSerial) 2147db96d56Sopenharmony_ci )) 2157db96d56Sopenharmony_ci )) 2167db96d56Sopenharmony_ci )) 2177db96d56Sopenharmony_ci ))</PythonVersionHex> 2187db96d56Sopenharmony_ci <Field3Value>$([msbuild]::Add( 2197db96d56Sopenharmony_ci $(ReleaseSerial), 2207db96d56Sopenharmony_ci $([msbuild]::Add( 2217db96d56Sopenharmony_ci $([msbuild]::Multiply($(ReleaseLevelNumber), 10)), 2227db96d56Sopenharmony_ci $([msbuild]::Multiply($(MicroVersionNumber), 1000)) 2237db96d56Sopenharmony_ci )) 2247db96d56Sopenharmony_ci ))</Field3Value> 2257db96d56Sopenharmony_ci <Field3Value Condition="$(UseTestMarker) == 'true'">$([msbuild]::Add($(Field3Value), 9000))</Field3Value> 2267db96d56Sopenharmony_ci 2277db96d56Sopenharmony_ci <!-- The name of the resulting pythonXY.dll (without the extension) --> 2287db96d56Sopenharmony_ci <PyDllName>python$(MajorVersionNumber)$(MinorVersionNumber)$(PyDebugExt)</PyDllName> 2297db96d56Sopenharmony_ci <!-- The name of the resulting pythonX.dll (without the extension) --> 2307db96d56Sopenharmony_ci <Py3DllName>python3$(PyDebugExt)</Py3DllName> 2317db96d56Sopenharmony_ci 2327db96d56Sopenharmony_ci <!-- The version and platform tag to include in .pyd filenames --> 2337db96d56Sopenharmony_ci <PydTag Condition="$(ArchName) == 'win32'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win32</PydTag> 2347db96d56Sopenharmony_ci <PydTag Condition="$(ArchName) == 'arm32'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win_arm32</PydTag> 2357db96d56Sopenharmony_ci <PydTag Condition="$(ArchName) == 'arm64'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win_arm64</PydTag> 2367db96d56Sopenharmony_ci <PydTag Condition="$(ArchName) == 'amd64'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win_amd64</PydTag> 2377db96d56Sopenharmony_ci 2387db96d56Sopenharmony_ci <!-- The version number for sys.winver --> 2397db96d56Sopenharmony_ci <SysWinVer>$(MajorVersionNumber).$(MinorVersionNumber)$(PyArchExt)$(PyTestExt)</SysWinVer> 2407db96d56Sopenharmony_ci </PropertyGroup> 2417db96d56Sopenharmony_ci 2427db96d56Sopenharmony_ci <!-- Displays the calculated version info --> 2437db96d56Sopenharmony_ci <Target Name="ShowVersionInfo"> 2447db96d56Sopenharmony_ci <Message Importance="high" Text="PythonVersionNumber: $(PythonVersionNumber)" /> 2457db96d56Sopenharmony_ci <Message Importance="high" Text="PythonVersion: $(PythonVersion)" /> 2467db96d56Sopenharmony_ci <Message Importance="high" Text="PythonVersionHex: 0x$([System.UInt32]::Parse($(PythonVersionHex)).ToString(`X08`))" /> 2477db96d56Sopenharmony_ci <Message Importance="high" Text="PythonVersionUnique: $(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value)" /> 2487db96d56Sopenharmony_ci <Message Importance="high" Text="Field3Value: $(Field3Value)" /> 2497db96d56Sopenharmony_ci <Message Importance="high" Text="SysWinVer: $(SysWinVer)" /> 2507db96d56Sopenharmony_ci <Message Importance="high" Text="PyDllName: $(PyDllName)" /> 2517db96d56Sopenharmony_ci <Message Importance="high" Text="WindowsSdkVersion: $(TargetPlatformVersion)" /> 2527db96d56Sopenharmony_ci </Target> 2537db96d56Sopenharmony_ci</Project> 254