diff --git a/physx/buildtools/cmake_generate_projects.py b/physx/buildtools/cmake_generate_projects.py
index ebd304962..6259d3e79 100644
--- a/physx/buildtools/cmake_generate_projects.py
+++ b/physx/buildtools/cmake_generate_projects.py
@@ -138,6 +138,10 @@ def getCMakeSwitches(self):
print('VS16CL:' + os.environ['VS160CLPATH'])
outString = outString + ' -DCUDA_HOST_COMPILER=' + \
os.environ['VS160CLPATH']
+ if self.compiler == 'vc17':
+ print('VS17CL:' + os.environ['VS170CLPATH'])
+ outString = outString + ' -DCUDA_HOST_COMPILER=' + \
+ os.environ['VS170CLPATH']
return outString
@@ -157,6 +161,8 @@ def getPlatformCMakeParams(self):
outString = outString + '-G \"Visual Studio 15 2017\"'
elif self.compiler == 'vc16':
outString = outString + '-G \"Visual Studio 16 2019\"'
+ elif self.compiler == 'vc17':
+ outString = outString + '-G \"Visual Studio 17 2022\"'
elif self.compiler == 'xcode':
outString = outString + '-G Xcode'
elif self.targetPlatform == 'android':
@@ -232,6 +238,14 @@ def getPlatformCMakeParams(self):
outString = outString + ' -T v142'
outString = outString + ' -DCMAKE_VS160PATH=' + \
os.environ['VS160PATH']
+ elif self.compiler == 'vc17':
+ # TODO: Toolchain file need to be created
+ outString = outString + ' -DCMAKE_TOOLCHAIN_FILE=' + \
+ os.environ['PM_CMakeModules_PATH'] + \
+ '/xboxone/XboxOneToolchainVC17.txt'
+ outString = outString + ' -T v143'
+ outString = outString + ' -DCMAKE_VS170PATH=' + \
+ os.environ['VS170PATH']
outString = outString + ' -DCMAKE_GENERATOR_PLATFORM=Durango'
outString = outString + ' -DSUPPRESS_SUFFIX=ON'
return outString
@@ -252,6 +266,14 @@ def getPlatformCMakeParams(self):
outString = outString + ' -T v142'
outString = outString + ' -DCMAKE_VS160PATH=' + \
os.environ['VS160PATH']
+ if self.compiler == 'vc17':
+ # TODO: Toolchain file need to be created
+ outString = outString + ' -DCMAKE_TOOLCHAIN_FILE=' + \
+ os.environ['PM_CMakeModules_PATH'] + \
+ '/xboxseriesx/XboxSeriesXToolchainVC17.txt'
+ outString = outString + ' -T v143'
+ outString = outString + ' -DCMAKE_VS170PATH=' + \
+ os.environ['VS160PATH']
outString = outString + ' -DCMAKE_GENERATOR_PLATFORM=Gaming.Xbox.Scarlett.x64'
outString = outString + ' -DSUPPRESS_SUFFIX=ON'
return outString
diff --git a/physx/buildtools/presets/public/vc17win64.xml b/physx/buildtools/presets/public/vc17win64.xml
new file mode 100644
index 000000000..c315b9b0d
--- /dev/null
+++ b/physx/buildtools/presets/public/vc17win64.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/physx/generate_projects.bat b/physx/generate_projects.bat
index fe7a63943..0cc66825b 100644
--- a/physx/generate_projects.bat
+++ b/physx/generate_projects.bat
@@ -62,6 +62,11 @@ for /f "usebackq tokens=*" %%i in (`"%PM_vswhere_PATH%\VsWhere.exe -version [16
set VS160PATH="%%i"
)
+for /f "usebackq tokens=*" %%i in (`"%PM_vswhere_PATH%\VsWhere.exe -version [17.0,18.0) -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath"`) do (
+ set Install2022Dir=%%i
+ set VS170PATH="%%i"
+)
+
if exist "%Install2017Dir%\VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt" (
pushd "%Install2017Dir%\VC\Auxiliary\Build\"
set /p Version=