From de8bb3789b56ac9d245ba322a812b1879ecbf647 Mon Sep 17 00:00:00 2001 From: philippelatulippe Date: Fri, 22 Apr 2011 22:47:02 -0400 Subject: [PATCH 1/2] 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} From c039f3c33801b4c87ffe4095c8073d5278f11188 Mon Sep 17 00:00:00 2001 From: philippelatulippe Date: Sat, 23 Apr 2011 15:08:57 -0400 Subject: [PATCH 2/2] cmake: Don't search for PhysX 2.6.4 on linux, remove 'SDKs' directory from PhysX find_path() --- cmake/FindPhysX.cmake | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/cmake/FindPhysX.cmake b/cmake/FindPhysX.cmake index 6ec17b00..0b282e09 100644 --- a/cmake/FindPhysX.cmake +++ b/cmake/FindPhysX.cmake @@ -6,11 +6,10 @@ 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 +find_path(PHYSX_SDK_PATH Cooking/Include/NxCooking.h /usr/local/include /usr/include - PATH_SUFFIXES "PhysX/v2.6.4" - PATH_SUFFIXES "PhysX/v2.7.3" + PATH_SUFFIXES "PhysX/v2.7.3/SDKs" ) if(PHYSX_SDK_PATH) @@ -35,17 +34,14 @@ endif() #2.7.3 is the earliest version that can be downloaded from nVidia's archive. find_library(PHYSX_COOKING_LIBRARY NAMES NxCooking - 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 - 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 - PATH_SUFFIXES "PhysX/v2.6.4" PATH_SUFFIXES "PhysX/v2.7.3" PATHS "${PHYSX_SDK_PATH}/lib/win32" )