瀏覽代碼

makepanda: Add handling for Windows 11 SDK

rdb 4 年之前
父節點
當前提交
ce0d020cfd
共有 3 個文件被更改,包括 11 次插入5 次删除
  1. 1 1
      README.md
  2. 1 1
      makepanda/makepanda.py
  3. 9 3
      makepanda/makepandacore.py

+ 1 - 1
README.md

@@ -54,7 +54,7 @@ Windows
 
 
 You can build Panda3D with the Microsoft Visual C++ 2015, 2017, 2019 or 2022
 You can build Panda3D with the Microsoft Visual C++ 2015, 2017, 2019 or 2022
 compiler, which can be downloaded for free from the [Visual Studio site](https://visualstudio.microsoft.com/downloads/).
 compiler, which can be downloaded for free from the [Visual Studio site](https://visualstudio.microsoft.com/downloads/).
-You will also need to install the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk),
+You will also need to install the [Windows SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk),
 and if you intend to target Windows XP, you will also need the Windows 7.1A
 and if you intend to target Windows XP, you will also need the Windows 7.1A
 SDK (which can be installed from the Visual Studio Installer).
 SDK (which can be installed from the Visual Studio Installer).
 
 

+ 1 - 1
makepanda/makepanda.py

@@ -159,7 +159,7 @@ def usage(problem):
     print("  --nothing         (disable every third-party lib)")
     print("  --nothing         (disable every third-party lib)")
     print("  --everything      (enable every third-party lib)")
     print("  --everything      (enable every third-party lib)")
     print("  --directx-sdk=X   (specify version of DirectX SDK to use: jun2010, aug2009, mar2009, aug2006)")
     print("  --directx-sdk=X   (specify version of DirectX SDK to use: jun2010, aug2009, mar2009, aug2006)")
-    print("  --windows-sdk=X   (specify Windows SDK version, eg. 7.0, 7.1 or 10.  Default is 7.1)")
+    print("  --windows-sdk=X   (specify Windows SDK version, eg. 7.0, 7.1, 10 or 11.  Default is 7.1)")
     print("  --msvc-version=X  (specify Visual C++ version, eg. 10, 11, 12, 14, 14.1, 14.2, 14.3.  Default is 14)")
     print("  --msvc-version=X  (specify Visual C++ version, eg. 10, 11, 12, 14, 14.1, 14.2, 14.3.  Default is 14)")
     print("  --use-icl         (experimental setting to use an intel compiler instead of MSVC on Windows)")
     print("  --use-icl         (experimental setting to use an intel compiler instead of MSVC on Windows)")
     print("")
     print("")

+ 9 - 3
makepanda/makepandacore.py

@@ -2377,7 +2377,7 @@ def SdkLocateWindows(version = '7.1'):
     if version == '10':
     if version == '10':
         version = '10.0'
         version = '10.0'
 
 
-    if version.startswith('10.') and version.count('.') == 1:
+    if (version.startswith('10.') and version.count('.') == 1) or version == '11':
         # Choose the latest version of the Windows 10 SDK.
         # Choose the latest version of the Windows 10 SDK.
         platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots", "KitsRoot10")
         platsdk = GetRegistryKey("SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots", "KitsRoot10")
 
 
@@ -2386,7 +2386,13 @@ def SdkLocateWindows(version = '7.1'):
             platsdk = "C:\\Program Files (x86)\\Windows Kits\\10\\"
             platsdk = "C:\\Program Files (x86)\\Windows Kits\\10\\"
 
 
         if platsdk and os.path.isdir(platsdk):
         if platsdk and os.path.isdir(platsdk):
+            min_version = (10, 0, 0)
+            if version == '11':
+                version = '10.0'
+                min_version = (10, 0, 22000)
+
             incdirs = glob.glob(os.path.join(platsdk, 'Include', version + '.*.*'))
             incdirs = glob.glob(os.path.join(platsdk, 'Include', version + '.*.*'))
+
             max_version = ()
             max_version = ()
             for dir in incdirs:
             for dir in incdirs:
                 verstring = os.path.basename(dir)
                 verstring = os.path.basename(dir)
@@ -2404,7 +2410,7 @@ def SdkLocateWindows(version = '7.1'):
                     continue
                     continue
 
 
                 vertuple = tuple(map(int, verstring.split('.')))
                 vertuple = tuple(map(int, verstring.split('.')))
-                if vertuple > max_version:
+                if vertuple > max_version and vertuple > min_version:
                     version = verstring
                     version = verstring
                     max_version = vertuple
                     max_version = vertuple
 
 
@@ -2900,7 +2906,7 @@ def SetupVisualStudioEnviron():
         elif not win_kit.endswith('\\'):
         elif not win_kit.endswith('\\'):
             win_kit += '\\'
             win_kit += '\\'
 
 
-        for vnum in 10150, 10240, 10586, 14393, 15063, 16299, 17134, 17763, 18362, 19041:
+        for vnum in 10150, 10240, 10586, 14393, 15063, 16299, 17134, 17763, 18362, 19041, 20348, 22000:
             version = "10.0.{0}.0".format(vnum)
             version = "10.0.{0}.0".format(vnum)
             if os.path.isfile(win_kit + "Include\\" + version + "\\ucrt\\assert.h"):
             if os.path.isfile(win_kit + "Include\\" + version + "\\ucrt\\assert.h"):
                 print("Using Universal CRT %s" % (version))
                 print("Using Universal CRT %s" % (version))