Преглед изворни кода

Added Physx5 changes

Signed-off-by: Olex Lozitskiy <[email protected]>
Olex Lozitskiy пре 2 година
родитељ
комит
259bde990f
2 измењених фајлова са 46 додато и 7 уклоњено
  1. 5 1
      package-system/PhysX/FindPhysX.cmake.template
  2. 41 6
      package-system/PhysX5/FindPhysX.cmake

+ 5 - 1
package-system/PhysX/FindPhysX.cmake.template

@@ -55,7 +55,11 @@ set(extra_static_libs ${EXTRA_STATIC_LIBS_NON_MONOLITHIC})
 set(extra_shared_libs ${EXTRA_SHARED_LIBS})
 
 if(LY_MONOLITHIC_GAME)
-    set(MONO_PATH_TO_STATIC_LIBS $${CMAKE_CURRENT_LIST_DIR}/PhysX/static/lib)
+    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

+ 41 - 6
package-system/PhysX5/FindPhysX.cmake

@@ -52,12 +52,43 @@ set(extra_static_libs ${EXTRA_STATIC_LIBS_NON_MONOLITHIC})
 set(extra_shared_libs ${EXTRA_SHARED_LIBS})
 
 if(LY_MONOLITHIC_GAME)
-    list(APPEND ${MY_NAME}_LIBRARIES
-        ${PATH_TO_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}PhysX_static_64${CMAKE_STATIC_LIBRARY_SUFFIX}
-        ${PATH_TO_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}PhysXCooking_static_64${CMAKE_STATIC_LIBRARY_SUFFIX}
-        ${PATH_TO_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}PhysXFoundation_static_64${CMAKE_STATIC_LIBRARY_SUFFIX}
-        ${PATH_TO_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}PhysXCommon_static_64${CMAKE_STATIC_LIBRARY_SUFFIX}
+    if(LY_PHYSX_PROFILE_USE_CHECKED_LIBS)
+        set(MONO_PATH_TO_STATIC_LIBS ${CMAKE_CURRENT_LIST_DIR}/PhysX/physx/bin/static/checked)
+    else()
+        set(MONO_PATH_TO_STATIC_LIBS ${CMAKE_CURRENT_LIST_DIR}/PhysX/physx/bin/static/profile)
+    endif()
+    # The order of PhysX 5.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(Physx5_STATIC_LIBS_FOR_MONOLITHIC::imported INTERFACE IMPORTED GLOBAL)
+        target_link_libraries(Physx5_STATIC_LIBS_FOR_MONOLITHIC::imported INTERFACE
+        PhysXFoundation_static_64::imported
     )
+
     if(extra_shared_libs)
         set(${MY_NAME}_RUNTIME_DEPENDENCIES
             ${extra_shared_libs}
@@ -82,7 +113,11 @@ endif()
 
 add_library(${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
 ly_target_include_system_directories(TARGET ${TARGET_WITH_NAMESPACE} INTERFACE ${${MY_NAME}_INCLUDE_DIR})
-target_link_libraries(${TARGET_WITH_NAMESPACE} INTERFACE ${${MY_NAME}_LIBRARIES})
+if(LY_MONOLITHIC_GAME)
+    target_link_libraries(${TARGET_WITH_NAMESPACE} INTERFACE Physx5_STATIC_LIBS_FOR_MONOLITHIC::imported)
+else()
+    target_link_libraries(${TARGET_WITH_NAMESPACE} INTERFACE ${${MY_NAME}_LIBRARIES})
+endif()
 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})