From de8bb3789b56ac9d245ba322a812b1879ecbf647 Mon Sep 17 00:00:00 2001 From: philippelatulippe Date: Fri, 22 Apr 2011 22:47:02 -0400 Subject: [PATCH] Fix FindPhysx.cmake to work on linux. It has to main issues left: 1. I can't find v2.6.4 for linux. Based on old forum posts, I know that it exists, but it's not in the nVidia archive. I don't know if this version is backwards-compatible. 2. v2.7.3 does not have a NxExtensions library. --- cmake/FindPhysX.cmake | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/cmake/FindPhysX.cmake b/cmake/FindPhysX.cmake index 6233e23e..6ec17b00 100644 --- a/cmake/FindPhysX.cmake +++ b/cmake/FindPhysX.cmake @@ -4,6 +4,15 @@ elseif(PHYSX_SDK_PATH AND PHYSX_LOADER_LIBRARY) set(PHYSX_FIND_QUIETLY TRUE) endif() + +#This isn't quite right, but we'll assume they are all at the same place. +find_path(PHYSX_SDK_PATH SDKs/Cooking/Include/NxCooking.h + /usr/local/include + /usr/include + PATH_SUFFIXES "PhysX/v2.6.4" + PATH_SUFFIXES "PhysX/v2.7.3" +) + if(PHYSX_SDK_PATH) set(PHYSX_FOUNDATION_INCLUDE_DIR "${PHYSX_SDK_PATH}/Foundation/include") set(PHYSX_COOKING_INCLUDE_DIR "${PHYSX_SDK_PATH}/Cooking/include") @@ -21,18 +30,28 @@ if(PHYSX_SDK_PATH) ${PHYSX_EXTENSIONS_INCLUDE_DIR} ${PHYSX_PHYSICS_INCLUDE_DIR} ${PHYSX_LOADER_INCLUDE_DIR} - ) + ) endif() -#TODO: Make find paths work for Linux builds too +#2.7.3 is the earliest version that can be downloaded from nVidia's archive. find_library(PHYSX_COOKING_LIBRARY NAMES NxCooking - PATHS "${PHYSX_SDK_PATH}/lib/win32") + PATH_SUFFIXES "PhysX/v2.6.4" + PATH_SUFFIXES "PhysX/v2.7.3" + PATHS "${PHYSX_SDK_PATH}/lib/win32" +) find_library(PHYSX_CHARACTER_LIBRARY NAMES NxCharacter - PATHS "${PHYSX_SDK_PATH}/lib/win32") + PATH_SUFFIXES "PhysX/v2.6.4" + PATH_SUFFIXES "PhysX/v2.7.3" + PATHS "${PHYSX_SDK_PATH}/lib/win32" +) find_library(PHYSX_EXTENSIONS_LIBRARY NAMES NxExtensions - PATHS "${PHYSX_SDK_PATH}/lib/win32") + PATH_SUFFIXES "PhysX/v2.6.4" + PATH_SUFFIXES "PhysX/v2.7.3" + PATHS "${PHYSX_SDK_PATH}/lib/win32" +) find_library(PHYSX_LOADER_LIBRARY NAMES PhysXLoader - PATHS "${PHYSX_SDK_PATH}/lib/win32") + PATHS "${PHYSX_SDK_PATH}/lib/win32" +) set(PHYSX_LIBRARIES ${PHYSX_COOKING_LIBRARY}