Преглед на файлове

PhysX Split support for PhysX4 (#240)

Updates to the PhysX 3rd Party script to support the [PhysX 4/5 Split](https://github.com/o3de/sig-simulation/issues/85).

* Support to rename `FindPhysX.cmake` -> `FindPhysX4.cmake`
* Update the `FindPhysX4.cmake` to only use static libraries instead of the shared equivalent. This is necessary to prevent collision of the same shared libraries from both versions that have the same name. This will also reduce the 3rd Party package size.
* Update the PhysX 3P package to `rev8`
---------

Signed-off-by: Steve Pham <[email protected]>
Steve Pham преди 1 година
родител
ревизия
742fff0a3a

+ 2 - 2
Scripts/builders/vcpkgbuilder.py

@@ -226,7 +226,7 @@ class VcpkgBuilder(object):
         with (packageDir / 'PackageInfo.json').open('w') as fh:
             json.dump(settings, fh, indent=4)
 
-    def writeCMakeFindFile(self, packageDir: pathlib.Path, template, templateEnv:dict):
-        cmakeFindFile = packageDir / f'Find{self.packageName}.cmake'
+    def writeCMakeFindFile(self, packageDir: pathlib.Path, template, templateEnv:dict, overwrite_find_file:str or None):
+        cmakeFindFile = packageDir / f'Find{overwrite_find_file or self.packageName}.cmake'
         cmakeFindFile.write_text(string.Template(template).substitute(templateEnv))
 

+ 63 - 63
package-system/PhysX/FindPhysX.cmake.template

@@ -6,13 +6,13 @@
 #
 #
 
-set(MY_NAME "PhysX")
+set(MY_NAME "PhysX4")
 set(TARGET_WITH_NAMESPACE "3rdParty::$${MY_NAME}")
 if (TARGET $${TARGET_WITH_NAMESPACE})
     return()
 endif()
 
-set(_PACKAGE_DIR $${CMAKE_CURRENT_LIST_DIR}/PhysX/$$<IF:$$<BOOL:$${LY_MONOLITHIC_GAME}>,static,shared>)
+set(_PACKAGE_DIR $${CMAKE_CURRENT_LIST_DIR}/PhysX/static)
 set(_PACKAGE_DIR_SHARED $${CMAKE_CURRENT_LIST_DIR}/PhysX/shared)
 
 set($${MY_NAME}_INCLUDE_DIR
@@ -21,7 +21,7 @@ set($${MY_NAME}_INCLUDE_DIR
     $${_PACKAGE_DIR}/include/geometry
 )
 
-set($${MY_NAME}_COMPILE_DEFINITIONS $$<$$<BOOL:$${LY_MONOLITHIC_GAME}>:PX_PHYSX_STATIC_LIB>)
+set($${MY_NAME}_COMPILE_DEFINITIONS PX_PHYSX_STATIC_LIB)
 
 # LY_PHYSX_PROFILE_USE_CHECKED_LIBS allows to override what PhysX configuration to use on O3DE profile.
 set(LY_PHYSX_PROFILE_USE_CHECKED_LIBS OFF CACHE BOOL "When ON it uses PhysX SDK checked libraries on O3DE profile configuration")
@@ -33,6 +33,7 @@ endif()
 
 set(PATH_TO_STATIC_LIBS $${_PACKAGE_DIR}/$$<IF:$$<CONFIG:debug>,debug,$$<$$<CONFIG:profile>:$${PHYSX_PROFILE_CONFIG}>>/lib)
 set(PATH_TO_SHARED_LIBS $${_PACKAGE_DIR_SHARED}/$$<IF:$$<CONFIG:debug>,debug,$$<$$<CONFIG:profile>:$${PHYSX_PROFILE_CONFIG}>>/bin)
+set(PATH_TO_ADDITIONAL_STATIC_LIBS $${_PACKAGE_DIR_SHARED}/$$<IF:$$<CONFIG:debug>,debug,$$<$$<CONFIG:profile>:$${PHYSX_PROFILE_CONFIG}>>/lib)
 
 if(DEFINED CMAKE_IMPORT_LIBRARY_SUFFIX)
     set(PATH_TO_IMPORT_LIBS $${PATH_TO_STATIC_LIBS})
@@ -44,78 +45,77 @@ else()
     set(import_lib_suffix $${CMAKE_SHARED_LIBRARY_SUFFIX})
 endif()
 
-set($${MY_NAME}_LIBRARIES
-    $${PATH_TO_STATIC_LIBS}/$${CMAKE_STATIC_LIBRARY_PREFIX}PhysXCharacterKinematic_static_64$${CMAKE_STATIC_LIBRARY_SUFFIX}
-    $${PATH_TO_STATIC_LIBS}/$${CMAKE_STATIC_LIBRARY_PREFIX}PhysXVehicle_static_64$${CMAKE_STATIC_LIBRARY_SUFFIX}
-    $${PATH_TO_STATIC_LIBS}/$${CMAKE_STATIC_LIBRARY_PREFIX}PhysXExtensions_static_64$${CMAKE_STATIC_LIBRARY_SUFFIX}
-    $${PATH_TO_STATIC_LIBS}/$${CMAKE_STATIC_LIBRARY_PREFIX}PhysXPvdSDK_static_64$${CMAKE_STATIC_LIBRARY_SUFFIX}
+set(extra_static_libs
+${EXTRA_STATIC_LIBS}
 )
 
-set(extra_static_libs ${EXTRA_STATIC_LIBS_NON_MONOLITHIC})
-set(extra_shared_libs ${EXTRA_SHARED_LIBS})
-
-if(LY_MONOLITHIC_GAME)
-    if(LY_PHYSX_PROFILE_USE_CHECKED_LIBS)
-        set(MONO_PATH_TO_STATIC_LIBS $${CMAKE_CURRENT_LIST_DIR}/PhysX/static/checked/lib)
-    else()
-        set(MONO_PATH_TO_STATIC_LIBS $${CMAKE_CURRENT_LIST_DIR}/PhysX/static/profile/lib)
-    endif()
-    # The order of PhysX 4.x static libraries is important for monolithic targets.
-    set(IMPORTED_PHYSICS_LIBS
-        PhysX_static_64
-        PhysXPvdSDK_static_64
-        PhysXVehicle_static_64
-        PhysXCharacterKinematic_static_64
-        PhysXExtensions_static_64
-        PhysXCooking_static_64
-        PhysXCommon_static_64
-        PhysXFoundation_static_64
-    )
-    foreach(PHYSICS_LIB $${IMPORTED_PHYSICS_LIBS})
-        add_library($${PHYSICS_LIB}::imported STATIC IMPORTED GLOBAL)
-        set($${PHYSICS_LIB}_PATH $${MONO_PATH_TO_STATIC_LIBS}/$${CMAKE_STATIC_LIBRARY_PREFIX}$${PHYSICS_LIB}$${CMAKE_STATIC_LIBRARY_SUFFIX})
-        set_target_properties($${PHYSICS_LIB}::imported
-            PROPERTIES
-                IMPORTED_LOCATION_DEBUG   $${$${PHYSICS_LIB}_PATH}
-                IMPORTED_LOCATION_PROFILE $${$${PHYSICS_LIB}_PATH}
-                IMPORTED_LOCATION_RELEASE $${$${PHYSICS_LIB}_PATH}
-        )
-        target_link_libraries($${PHYSICS_LIB}::imported INTERFACE 
-            $${PREVIOUS_PHYSICS_LIB}
-            $${MONO_PATH_TO_STATIC_LIBS}/$${CMAKE_STATIC_LIBRARY_PREFIX}$${PHYSICS_LIB}$${CMAKE_STATIC_LIBRARY_SUFFIX}
-        )
-        set (PREVIOUS_PHYSICS_LIB $${PHYSICS_LIB}::imported)
-    endforeach()
-
-    add_library(Physx4_STATIC_LIBS_FOR_MONOLITHIC::imported INTERFACE IMPORTED GLOBAL)
-    target_link_libraries(Physx4_STATIC_LIBS_FOR_MONOLITHIC::imported INTERFACE
-        PhysXFoundation_static_64::imported
+set(extra_shared_libs
+${EXTRA_SHARED_LIBS}
+)
+
+# The order of PhysX 5.x static libraries is important for static targets. We will loop through in order and define
+# each static library explicitly, while setting their dependency as a chain to ensure the order is preserved
+
+set(IMPORTED_PHYSICS_LIBS
+    PhysX_static_64
+    PhysXPvdSDK_static_64
+    PhysXVehicle_static_64
+    PhysXCharacterKinematic_static_64
+    PhysXExtensions_static_64
+    PhysXCooking_static_64
+    PhysXCommon_static_64
+    PhysXFoundation_static_64
+)
+
+foreach(PHYSICS_LIB $${IMPORTED_PHYSICS_LIBS})
+
+    # Set the individual target names to include a $${MY_NAME} prefix in order to prevent collisions
+    # with other 3rd party PhysX Packages of different versions while retaining the same actual
+    # filename
+
+    set(PHYSICS_LIB_NAME $${MY_NAME}$${PHYSICS_LIB})
+
+    add_library($${PHYSICS_LIB_NAME}::imported STATIC IMPORTED GLOBAL)
+
+    # Set the import location (note: generator expressions are not supported as properties here, so each config needs to be explicit for its location)
+    set_target_properties($${PHYSICS_LIB_NAME}::imported
+        PROPERTIES
+            IMPORTED_LOCATION_DEBUG   $${_PACKAGE_DIR}/debug/lib/$${CMAKE_STATIC_LIBRARY_PREFIX}$${PHYSICS_LIB}$${CMAKE_STATIC_LIBRARY_SUFFIX}
+            IMPORTED_LOCATION_PROFILE $${_PACKAGE_DIR}/$${PHYSX_PROFILE_CONFIG}/lib/$${CMAKE_STATIC_LIBRARY_PREFIX}$${PHYSICS_LIB}$${CMAKE_STATIC_LIBRARY_SUFFIX}
+            IMPORTED_LOCATION_RELEASE $${_PACKAGE_DIR}/lib/$${CMAKE_STATIC_LIBRARY_PREFIX}$${PHYSICS_LIB}$${CMAKE_STATIC_LIBRARY_SUFFIX}
     )
-else()
-    list(APPEND $${MY_NAME}_LIBRARIES
-        $${PATH_TO_IMPORT_LIBS}/$${import_lib_prefix}PhysX_64$${import_lib_suffix}
-        $${PATH_TO_IMPORT_LIBS}/$${import_lib_prefix}PhysXCooking_64$${import_lib_suffix}
-        $${PATH_TO_IMPORT_LIBS}/$${import_lib_prefix}PhysXFoundation_64$${import_lib_suffix}
-        $${PATH_TO_IMPORT_LIBS}/$${import_lib_prefix}PhysXCommon_64$${import_lib_suffix}
-        $${extra_static_libs}
+
+    # Set the target libraries dependency on any previous lib to build the order chain
+    target_link_libraries($${PHYSICS_LIB_NAME}::imported INTERFACE
+        $${PREVIOUS_PHYSICS_LIB}
+        $${PATH_TO_STATIC_LIBS}/$${CMAKE_STATIC_LIBRARY_PREFIX}$${PHYSICS_LIB}$${CMAKE_STATIC_LIBRARY_SUFFIX}
     )
+    set (PREVIOUS_PHYSICS_LIB $${PHYSICS_LIB_NAME}::imported)
+
+endforeach()
+
+add_library($${MY_NAME}_STATIC_LIBS::imported INTERFACE IMPORTED GLOBAL)
+
+target_link_libraries($${MY_NAME}_STATIC_LIBS::imported INTERFACE
+    $${PREVIOUS_PHYSICS_LIB}
+    $${extra_static_libs}
+)
+
+# Add any optional shared library dependency as a runtime dependency
+if(extra_shared_libs)
     set($${MY_NAME}_RUNTIME_DEPENDENCIES
-        $${PATH_TO_SHARED_LIBS}/$${CMAKE_SHARED_LIBRARY_PREFIX}PhysX_64$${CMAKE_SHARED_LIBRARY_SUFFIX}
-        $${PATH_TO_SHARED_LIBS}/$${CMAKE_SHARED_LIBRARY_PREFIX}PhysXCooking_64$${CMAKE_SHARED_LIBRARY_SUFFIX}
-        $${PATH_TO_SHARED_LIBS}/$${CMAKE_SHARED_LIBRARY_PREFIX}PhysXFoundation_64$${CMAKE_SHARED_LIBRARY_SUFFIX}
-        $${PATH_TO_SHARED_LIBS}/$${CMAKE_SHARED_LIBRARY_PREFIX}PhysXCommon_64$${CMAKE_SHARED_LIBRARY_SUFFIX}
         $${extra_shared_libs}
     )
 endif()
 
 add_library($${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
+
 ly_target_include_system_directories(TARGET $${TARGET_WITH_NAMESPACE} INTERFACE $${$${MY_NAME}_INCLUDE_DIR})
-if(LY_MONOLITHIC_GAME)
-    target_link_libraries($${TARGET_WITH_NAMESPACE} INTERFACE Physx4_STATIC_LIBS_FOR_MONOLITHIC::imported)
-else()
-    target_link_libraries($${TARGET_WITH_NAMESPACE} INTERFACE $${$${MY_NAME}_LIBRARIES})
-endif()
+
+target_link_libraries($${TARGET_WITH_NAMESPACE} INTERFACE $${MY_NAME}_STATIC_LIBS::imported)
+
 target_compile_definitions($${TARGET_WITH_NAMESPACE} INTERFACE $${$${MY_NAME}_COMPILE_DEFINITIONS})
+
 if(DEFINED $${MY_NAME}_RUNTIME_DEPENDENCIES)
     ly_add_target_files(TARGETS $${TARGET_WITH_NAMESPACE} FILES $${$${MY_NAME}_RUNTIME_DEPENDENCIES})
 endif()

+ 11 - 29
package-system/PhysX/FindPhysX_ios.cmake.template

@@ -6,13 +6,13 @@
 #
 #
 
-set(MY_NAME "PhysX")
+set(MY_NAME "PhysX4")
 set(TARGET_WITH_NAMESPACE "3rdParty::$${MY_NAME}")
 if (TARGET $${TARGET_WITH_NAMESPACE})
     return()
 endif()
 
-set(_PACKAGE_DIR $${CMAKE_CURRENT_LIST_DIR}/PhysX/$$<IF:$$<BOOL:$${LY_MONOLITHIC_GAME}>,static,shared>)
+set(_PACKAGE_DIR $${CMAKE_CURRENT_LIST_DIR}/PhysX/static)
 
 set($${MY_NAME}_INCLUDE_DIR
     $${_PACKAGE_DIR}/include
@@ -20,7 +20,7 @@ set($${MY_NAME}_INCLUDE_DIR
     $${_PACKAGE_DIR}/include/geometry
 )
 
-set($${MY_NAME}_COMPILE_DEFINITIONS $$<$$<BOOL:$${LY_MONOLITHIC_GAME}>:PX_PHYSX_STATIC_LIB>)
+set($${MY_NAME}_COMPILE_DEFINITIONS PX_PHYSX_STATIC_LIB)
 
 # LY_PHYSX_PROFILE_USE_CHECKED_LIBS allows to override what PhysX configuration to use on O3DE profile.
 set(LY_PHYSX_PROFILE_USE_CHECKED_LIBS OFF CACHE BOOL "When ON it uses PhysX SDK checked libraries on O3DE profile configuration")
@@ -30,17 +30,7 @@ else()
     set(PHYSX_PROFILE_CONFIG "profile")
 endif()
 
-if(LY_MONOLITHIC_GAME)
-    set(PATH_TO_STATIC_LIBS $${_PACKAGE_DIR}/$$<IF:$$<CONFIG:debug>,debug,$$<$$<CONFIG:profile>:$${PHYSX_PROFILE_CONFIG}>>/lib)
-else()
-    # Frameworks are added and managed by XCode during the build process.
-    # At the moment $$<CONFIG> does not get replaced for "debug", "profile" or
-    # "release" for frameworks when added to XCode, so it's not able to find
-    # the frameworks since their path is wrong. To workaround this, for now it
-    # will only use the release version of the library.
-    set(PATH_TO_STATIC_LIBS $${_PACKAGE_DIR}/lib)
-    set(PATH_TO_SHARED_LIBS $${_PACKAGE_DIR}/bin)
-endif()
+set(PATH_TO_STATIC_LIBS $${_PACKAGE_DIR}/$$<IF:$$<CONFIG:debug>,debug,$$<$$<CONFIG:profile>:$${PHYSX_PROFILE_CONFIG}>>/lib)
 
 set($${MY_NAME}_LIBRARIES
     $${PATH_TO_STATIC_LIBS}/libPhysXCharacterKinematic_static_64.a
@@ -48,21 +38,13 @@ set($${MY_NAME}_LIBRARIES
     $${PATH_TO_STATIC_LIBS}/libPhysXExtensions_static_64.a
     $${PATH_TO_STATIC_LIBS}/libPhysXPvdSDK_static_64.a
 )
-if(LY_MONOLITHIC_GAME)
-    list(APPEND $${MY_NAME}_LIBRARIES
-        $${PATH_TO_STATIC_LIBS}/libPhysX_static_64.a
-        $${PATH_TO_STATIC_LIBS}/libPhysXCooking_static_64.a
-        $${PATH_TO_STATIC_LIBS}/libPhysXFoundation_static_64.a
-        $${PATH_TO_STATIC_LIBS}/libPhysXCommon_static_64.a
-    )
-else()
-    list(APPEND $${MY_NAME}_LIBRARIES
-        $${PATH_TO_SHARED_LIBS}/PhysX.framework
-        $${PATH_TO_SHARED_LIBS}/PhysXCooking.framework
-        $${PATH_TO_SHARED_LIBS}/PhysXFoundation.framework
-        $${PATH_TO_SHARED_LIBS}/PhysXCommon.framework
-    )
-endif()
+
+list(APPEND $${MY_NAME}_LIBRARIES
+    $${PATH_TO_STATIC_LIBS}/libPhysX_static_64.a
+    $${PATH_TO_STATIC_LIBS}/libPhysXCooking_static_64.a
+    $${PATH_TO_STATIC_LIBS}/libPhysXFoundation_static_64.a
+    $${PATH_TO_STATIC_LIBS}/libPhysXCommon_static_64.a
+)
 
 add_library($${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
 ly_target_include_system_directories(TARGET $${TARGET_WITH_NAMESPACE} INTERFACE $${$${MY_NAME}_INCLUDE_DIR})

+ 45 - 12
package-system/PhysX/build_package_image.py

@@ -20,6 +20,14 @@ import builders.monkeypatch_tempdir_cleanup
 
 def main():
     parser = argparse.ArgumentParser()
+    parser.add_argument(
+        '--package-name',
+        required=True
+    )
+    parser.add_argument(
+        '--package-rev',
+        required=True
+    )
     parser.add_argument(
         '--platform-name',
         dest='platformName',
@@ -53,33 +61,45 @@ def main():
     extraLibsPerPlatform = {
         'linux': {
             'EXTRA_SHARED_LIBS': '${PATH_TO_SHARED_LIBS}/libPhysXGpu_64.so',
-            'EXTRA_STATIC_LIBS_NON_MONOLITHIC': '',
+            'EXTRA_STATIC_LIBS': '',
+            'KEEP_LIBS': ['libPhysXGpu_64.so'],
         },
         'windows': {
             'EXTRA_SHARED_LIBS': '\n'.join((
                 '${PATH_TO_SHARED_LIBS}/PhysXDevice64.dll',
                 '${PATH_TO_SHARED_LIBS}/PhysXGpu_64.dll'
             )),
-            'EXTRA_STATIC_LIBS_NON_MONOLITHIC': '\n'.join((
-                '${PATH_TO_STATIC_LIBS}/LowLevel_static_64.lib',
-                '${PATH_TO_STATIC_LIBS}/LowLevelAABB_static_64.lib',
-                '${PATH_TO_STATIC_LIBS}/LowLevelDynamics_static_64.lib',
-                '${PATH_TO_STATIC_LIBS}/PhysXTask_static_64.lib',
-                '${PATH_TO_STATIC_LIBS}/SceneQuery_static_64.lib',
-                '${PATH_TO_STATIC_LIBS}/SimulationController_static_64.lib',
+            'EXTRA_STATIC_LIBS': '\n'.join((
+                '${PATH_TO_ADDITIONAL_STATIC_LIBS}/LowLevel_static_64.lib',
+                '${PATH_TO_ADDITIONAL_STATIC_LIBS}/LowLevelAABB_static_64.lib',
+                '${PATH_TO_ADDITIONAL_STATIC_LIBS}/LowLevelDynamics_static_64.lib',
+                '${PATH_TO_ADDITIONAL_STATIC_LIBS}/PhysXTask_static_64.lib',
+                '${PATH_TO_ADDITIONAL_STATIC_LIBS}/SceneQuery_static_64.lib',
+                '${PATH_TO_ADDITIONAL_STATIC_LIBS}/SimulationController_static_64.lib',
             )),
+            'KEEP_LIBS': ['PhysXDevice64.dll', 
+                          'PhysXGpu_64.dll',
+                          'LowLevel_static_64.lib',
+                          'LowLevelAABB_static_64.lib',
+                          'LowLevelDynamics_static_64.lib',
+                          'PhysXTask_static_64.lib',
+                          'SceneQuery_static_64.lib',
+                          'SimulationController_static_64.lib'],
         },
         'mac': {
             'EXTRA_SHARED_LIBS': '',
-            'EXTRA_STATIC_LIBS_NON_MONOLITHIC': '',
+            'EXTRA_STATIC_LIBS': '',
+            'KEEP_LIBS': [],
         },
         'ios': {
             'EXTRA_SHARED_LIBS': '',
-            'EXTRA_STATIC_LIBS_NON_MONOLITHIC': '',
+            'EXTRA_STATIC_LIBS': '',
+            'KEEP_LIBS': [],
         },
         'android': {
             'EXTRA_SHARED_LIBS': '',
-            'EXTRA_STATIC_LIBS_NON_MONOLITHIC': '',
+            'EXTRA_STATIC_LIBS': '',
+            'KEEP_LIBS': [],
         },
     }
     with TemporaryDirectory() as tempdir:
@@ -89,6 +109,8 @@ def main():
 
         # We package PhysX static and dynamic libraries for all supported platforms
         for maybeStatic in (True, False):
+            if not maybeStatic and vcpkg_platform not in ['windows', 'linux']:
+                continue
             builder = VcpkgBuilder(
                 packageName='PhysX',
                 portName='physx',
@@ -114,12 +136,22 @@ def main():
                 },
                 subdir=subdir
             )
+            if not maybeStatic:
+                # Delete everything in the shared folder except for ones that are marked for keeping (static libraries)
+                # to reduce the size of the package.
+                output_shared_folder = outputDir / builder.packageName / 'shared'
+                for clear_root, clear_dirs, clear_files in os.walk(str(output_shared_folder)):
+                    keep_shared_files = extraLibsPerPlatform[vcpkg_platform]['KEEP_LIBS']
+                    for clear_filename in clear_files:
+                        if clear_filename in keep_shared_files:
+                            continue
+                        os.remove(os.path.join(clear_root, clear_filename))
 
             if firstTime:
                 builder.writePackageInfoFile(
                     outputDir,
                     settings={
-                        'PackageName': f'PhysX-4.1.2.29882248-rev6-{args.platformName}',
+                        'PackageName': f'{args.package_name}-{args.package_rev}-{args.platformName}',
                         'URL': 'https://github.com/NVIDIAGameWorks/PhysX',
                         'License': 'BSD-3-Clause',
                         'LicenseFile': 'PhysX/LICENSE.md'
@@ -130,6 +162,7 @@ def main():
                     outputDir,
                     template=cmakeFindFileTemplate,
                     templateEnv=extraLibsPerPlatform[vcpkg_platform],
+                    overwrite_find_file='PhysX4'
                 )
 
             firstTime = False

+ 4 - 4
package_build_list_host_darwin.json

@@ -26,8 +26,8 @@
         "OpenSSL-1.1.1o-rev1-ios": "package-system/OpenSSL/build_package_image.py --platform ios",
         "OpenEXR-3.1.3-rev4-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Mac --package-root ../../package-system/OpenEXR/temp --clean",
         "openimageio-opencolorio-2.3.17-rev3-mac": "package-system/openimageio-opencolorio/build_openimageio.py --package-name=openimageio-opencolorio-2.3.17-rev3-mac --clean",
-        "PhysX-4.1.2.29882248-rev5-mac": "package-system/PhysX/build_package_image.py --platform mac",
-        "PhysX-4.1.2.29882248-rev5-ios": "package-system/PhysX/build_package_image.py --platform ios",
+        "PhysX-4.1.2.29882248-rev8-mac": "package-system/PhysX/build_package_image.py --package-name PhysX-4.1.2.29882248 --package-rev rev8 --platform mac",
+        "PhysX-4.1.2.29882248-rev8-ios": "package-system/PhysX/build_package_image.py --package-name PhysX-4.1.2.29882248 --package-rev rev8 --platform ios",
         "PhysX-5.1.1-rev1-mac": "package-system/PhysX5/build_package_image.py --platform mac",
         "PhysX-5.1.1-rev1-ios": "package-system/PhysX5/build_package_image.py --platform ios",
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-mac": "package-system/NvCloth/build_package_image.py --platform-name mac",
@@ -81,8 +81,8 @@
         "tiff-4.2.0.15-rev3-ios": "package-system/tiff-ios",
         "python-3.10.5-rev2-darwin": "package-system/python/darwin_x64/package",
         "asn1-0.9.27-rev2-ios": "package-system/asn1-ios",
-        "PhysX-4.1.2.29882248-rev5-mac": "package-system/PhysX-mac",
-        "PhysX-4.1.2.29882248-rev5-ios": "package-system/PhysX-ios",
+        "PhysX-4.1.2.29882248-rev8-mac": "package-system/PhysX-mac",
+        "PhysX-4.1.2.29882248-rev8-ios": "package-system/PhysX-ios",
         "PhysX-5.1.1-rev1-mac": "package-system/PhysX5/temp/PhysX5-mac",
         "PhysX-5.1.1-rev1-ios": "package-system/PhysX5/temp/PhysX5-ios",
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-mac": "package-system/NvCloth-mac",

+ 2 - 2
package_build_list_host_linux-aarch64.json

@@ -28,7 +28,7 @@
         "OpenMesh-8.1-rev3-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenMesh --platform-name Linux-aarch64 --clean",
         "OpenSSL-1.1.1t-rev1-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenSSL --platform-name Linux-aarch64 --clean",
         "OpenXR-1.0.22-rev2-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenXR --platform-name Linux-aarch64 --clean",
-        "PhysX-4.1.2.29882248-rev5-linux-aarch64": "package-system/PhysX/build_package_image.py --platform-name linux-aarch64",
+        "PhysX-4.1.2.29882248-rev8-linux-aarch64": "package-system/PhysX/build_package_image.py --package-name PhysX-4.1.2.29882248 --package-rev rev8 --platform-name linux-aarch64",
         "PhysX-5.1.1-rev1-linux-aarch64": "package-system/PhysX5/build_package_image.py --platform-name linux-aarch64",
         "png-1.6.37-rev2-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libpng --platform-name Linux-aarch64 --clean",
         "poly2tri-7f0487a-rev1-linux-aarch64": "package-system/poly2tri/build_package_image.py --platform-name linux-aarch64",
@@ -69,7 +69,7 @@
         "OpenMesh-8.1-rev3-linux-aarch64": "package-system/OpenMesh/temp/OpenMesh-linux-aarch64",
         "OpenSSL-1.1.1t-rev1-linux-aarch64": "package-system/OpenSSL/temp/OpenSSL-linux-aarch64",
         "OpenXR-1.0.22-rev2-linux-aarch64": "package-system/OpenXR/temp/OpenXR-linux-aarch64",
-        "PhysX-4.1.2.29882248-rev5-linux-aarch64": "package-system/PhysX-linux-aarch64",
+        "PhysX-4.1.2.29882248-rev8-linux-aarch64": "package-system/PhysX-linux-aarch64",
         "PhysX-5.1.1-rev1-linux-aarch64": "package-system/PhysX5/temp/PhysX5-linux-aarch64",
         "png-1.6.37-rev2-linux-aarch64":  "package-system/libpng/temp/png-linux-aarch64",
         "poly2tri-7f0487a-rev1-linux-aarch64": "package-system/poly2tri-linux-aarch64",

+ 2 - 2
package_build_list_host_linux.json

@@ -26,7 +26,7 @@
         "openimageio-opencolorio-2.3.17-rev2-linux": "package-system/openimageio-opencolorio/build_openimageio.py --package-name=openimageio-opencolorio-2.3.17-rev2-linux --clean",
         "OpenSSL-1.1.1t-rev1-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenSSL --platform-name Linux --clean",
         "OpenSSL-1.1.1t-rev1-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenSSL --platform-name Linux-aarch64 --clean",
-        "PhysX-4.1.2.29882248-rev6-linux": "package-system/PhysX/build_package_image.py --platform-name linux",
+        "PhysX-4.1.2.29882248-rev8-linux": "package-system/PhysX/build_package_image.py --package-name PhysX-4.1.2.29882248 --package-rev rev8 --platform-name linux",
         "PhysX-5.1.1-rev1-linux": "package-system/PhysX5/build_package_image.py --platform-name linux",
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-linux": "package-system/NvCloth/build_package_image.py --platform-name linux",
         "poly2tri-7f0487a-rev1-linux": "package-system/poly2tri/build_package_image.py --platform-name linux",
@@ -84,7 +84,7 @@
         "tiff-4.2.0.15-rev3-linux": "package-system/tiff-linux",
         "python-3.10.5-rev4-linux": "package-system/python/temp/python-linux",
         "python-3.10.5-rev4-linux-aarch64": "package-system/python/temp/python-linux-aarch64",
-        "PhysX-4.1.2.29882248-rev6-linux": "package-system/PhysX-linux",
+        "PhysX-4.1.2.29882248-rev8-linux": "package-system/PhysX-linux",
         "PhysX-5.1.1-rev1-linux": "package-system/PhysX5/temp/PhysX5-linux",
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-linux": "package-system/NvCloth-linux",
         "mikkelsen-1.0.0.4-linux": "package-system/mikkelsen-linux",

+ 4 - 4
package_build_list_host_windows.json

@@ -41,8 +41,8 @@
         "OpenSSL-1.1.1o-rev1-windows": "package-system/OpenSSL/build_package_image.py",
         "OpenXR-1.0.22-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenXR --platform-name Android --package-root ../../package-system --clean",
         "OpenXR-1.0.22-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenXR --platform-name Windows --package-root ../../package-system --clean",
-        "PhysX-4.1.2.29882248-rev5-android": "package-system/PhysX/build_package_image.py --platform android",
-        "PhysX-4.1.2.29882248-rev5-windows": "package-system/PhysX/build_package_image.py --platform windows",
+        "PhysX-4.1.2.29882248-rev8-android": "package-system/PhysX/build_package_image.py --package-name PhysX-4.1.2.29882248 --package-rev rev8 --platform android",
+        "PhysX-4.1.2.29882248-rev8-windows": "package-system/PhysX/build_package_image.py --package-name PhysX-4.1.2.29882248 --package-rev rev8 --platform windows",
         "PhysX-5.1.1-rev1-android": "package-system/PhysX5/build_package_image.py --platform android",
         "PhysX-5.1.1-rev2-windows": "package-system/PhysX5/build_package_image.py --platform windows",
         "png-1.6.37-rev2-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libpng --platform-name Android --package-root ../../package-system/libpng/temp --clean",
@@ -110,8 +110,8 @@
     "OpenSSL-1.1.1o-rev1-windows": "package-system/OpenSSL/temp/OpenSSL-windows",
     "OpenXR-1.0.22-rev1-android": "package-system/OpenXR-android",
     "OpenXR-1.0.22-rev1-windows": "package-system/OpenXR-windows",
-    "PhysX-4.1.2.29882248-rev5-android": "package-system/PhysX-android",
-    "PhysX-4.1.2.29882248-rev5-windows": "package-system/PhysX-windows",
+    "PhysX-4.1.2.29882248-rev8-android": "package-system/PhysX-android",
+    "PhysX-4.1.2.29882248-rev8-windows": "package-system/PhysX-windows",
     "PhysX-5.1.1-rev1-android": "package-system/PhysX5/temp/PhysX5-android",
     "PhysX-5.1.1-rev2-windows": "package-system/PhysX5/temp/PhysX5-windows",
     "png-1.6.37-rev2-android": "package-system/libpng/temp/png-android",