(
msbuild: pathlib.Path,
pcbuild_path: pathlib.Path,
configuration: str,
platform: str,
python_version: str,
windows_sdk_version: str,
freethreaded: bool,
)
| 745 | |
| 746 | |
| 747 | def run_msbuild( |
| 748 | msbuild: pathlib.Path, |
| 749 | pcbuild_path: pathlib.Path, |
| 750 | configuration: str, |
| 751 | platform: str, |
| 752 | python_version: str, |
| 753 | windows_sdk_version: str, |
| 754 | freethreaded: bool, |
| 755 | ): |
| 756 | args = [ |
| 757 | str(msbuild), |
| 758 | str(pcbuild_path / "pcbuild.proj"), |
| 759 | "/target:Build", |
| 760 | "/property:Configuration=%s" % configuration, |
| 761 | "/property:Platform=%s" % platform, |
| 762 | "/maxcpucount", |
| 763 | "/nologo", |
| 764 | "/verbosity:normal", |
| 765 | "/property:IncludeExternals=true", |
| 766 | "/property:IncludeSSL=true", |
| 767 | "/property:IncludeTkinter=true", |
| 768 | "/property:IncludeTests=true", |
| 769 | "/property:OverrideVersion=%s" % python_version, |
| 770 | "/property:IncludeCTypes=true", |
| 771 | # We pin the Windows 10 SDK version to make builds more deterministic. |
| 772 | # This can also work around known incompatibilities with the Windows 11 |
| 773 | # SDK as of at least CPython 3.9.7. |
| 774 | f"/property:DefaultWindowsSDKVersion={windows_sdk_version}", |
| 775 | ] |
| 776 | |
| 777 | if freethreaded: |
| 778 | args.append("/property:DisableGil=true") |
| 779 | |
| 780 | # Build tail-calling Python for 3.15+ |
| 781 | if python_version.startswith("3.15") and platform == "x64": |
| 782 | args.append("/property:UseTailCallInterp=true") |
| 783 | |
| 784 | exec_and_log(args, str(pcbuild_path), os.environ) |
| 785 | |
| 786 | |
| 787 | def build_openssl_for_arch( |
no test coverage detected