Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PhysX Split support for PhysX4 #240

Merged
merged 13 commits into from
Feb 3, 2024
Merged
4 changes: 2 additions & 2 deletions Scripts/builders/vcpkgbuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ def writePackageInfoFile(self, packageDir: pathlib.Path, settings: dict):
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))

126 changes: 63 additions & 63 deletions package-system/PhysX/FindPhysX.cmake.template
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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")
Expand All @@ -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})
Expand All @@ -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()
Expand Down
40 changes: 11 additions & 29 deletions package-system/PhysX/FindPhysX_ios.cmake.template
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@
#
#

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
$${_PACKAGE_DIR}/include/foundation
$${_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")
Expand All @@ -30,39 +30,21 @@ 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
$${PATH_TO_STATIC_LIBS}/libPhysXVehicle_static_64.a
$${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})
Expand Down
57 changes: 45 additions & 12 deletions package-system/PhysX/build_package_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@

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',
Expand Down Expand Up @@ -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:
Expand All @@ -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',
Expand All @@ -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'
Expand All @@ -130,6 +162,7 @@ def main():
outputDir,
template=cmakeFindFileTemplate,
templateEnv=extraLibsPerPlatform[vcpkg_platform],
overwrite_find_file='PhysX4'
)

firstTime = False
Expand Down
8 changes: 4 additions & 4 deletions package_build_list_host_darwin.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
Loading
Loading