diff --git a/CMake/External/CMakeLists.txt b/CMake/External/CMakeLists.txt index 72c51131fbabacf89d57cb1d670643474c1e8c25..05a584dcf37346b79744cb65bf80cf5d871f955e 100644 --- a/CMake/External/CMakeLists.txt +++ b/CMake/External/CMakeLists.txt @@ -87,6 +87,11 @@ if(WIN32) -D${PROJECT_NAME}_ENABLE_AUDIO:BOOL=${${PROJECT_NAME}_AUDIO_ENABLED} ) endif() +if(iMSTK_USE_PHYSX) + list(APPEND EXTERNAL_PROJECT_OPTIONAL_CMAKE_CACHE_ARGS + -DPHYSX_CONFIGURATION:STRING=${PHYSX_CONFIGURATION} + ) +endif() #----------------------------------------------------------------------------- # Inner build of the main project @@ -113,8 +118,6 @@ ExternalProject_Add( ${PROJECT_NAME} -DGTest_DIR:PATH=${GTest_DIR} -DVegaFEM_DIR:PATH=${VegaFEM_DIR} -DVTK_DIR:PATH=${VTK_DIR} - # I don't think this is needed by the inner build - # -DPHYSX_CONFIGURATION:STRING=${${PROJECT_NAME}_PHYSX_CONFIGURATION} ${EXTERNAL_PROJECT_OPTIONAL_CMAKE_CACHE_ARGS} DEPENDS ${${PROJECT_NAME}_DEPENDENCIES} PATCH_COMMAND diff --git a/CMakeLists.txt b/CMakeLists.txt index c93afc3a0e0fef21426da3b14850a76eb2f376b1..19040cc93bba4e045b2020c10a1f53ef6cdc6350 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -135,6 +135,16 @@ if (UNIX) endif() option(${PROJECT_NAME}_USE_VRPN "Build with VRPN support" OFF) option(${PROJECT_NAME}_USE_PHYSX "Build with Physx support" OFF) +if(iMSTK_USE_PHYSX) + set(PHYSX_CONFIGURATION "RELEASE" CACHE STRING "PhysX release library type") + + # Set the possible values for cmake-gui + set_property(CACHE PHYSX_CONFIGURATION PROPERTY STRINGS + "RELEASE" + "CHECKED" + "PROFILE" + ) +endif() #----------------------------------------------------------------------------- # CTest/Dashboards @@ -152,11 +162,6 @@ option(${PROJECT_NAME}_SUPERBUILD "Build ${PROJECT_NAME} and the projects it dep if(${PROJECT_NAME}_SUPERBUILD) - # Select the release version of PhysX to use - set(${PROJECT_NAME}_PHYSX_CONFIGURATION "RELEASE" CACHE STRING "Select PhysX Library Type for Release and RelWithDebInfo builds") - set(PHYSX_RELEASE_TYPES "RELEASE;CHECKED;PROFILE" CACHE INTERNAL "List of available PhysX release library types") - set_property(CACHE ${PROJECT_NAME}_PHYSX_CONFIGURATION PROPERTY STRINGS ${PHYSX_RELEASE_TYPES}) - #----------------------------------------------------------------------------- # Define External dependencies #----------------------------------------------------------------------------- @@ -268,12 +273,11 @@ find_package( Libusb REQUIRED) # OpenVR find_package( OpenVR REQUIRED ) -# Select the release version of PhysX to use -if (${PROJECT_NAME}_USE_PHYSX) +# PhysX +if (iMSTK_USE_PHYSX) add_compile_definitions(IMSTK_USE_PHYSX) - set(PHYSX_CONFIGURATION "${PHYSX_CONFIGURATION}" CACHE STRING "Select PhysX Library Type for Release and RelWithDebInfo builds") - set(PHYSX_RELEASE_TYPES "RELEASE;CHECKED;PROFILE" CACHE INTERNAL "List of available PhysX release library types") - set_property(CACHE PHYSX_CONFIGURATION PROPERTY STRINGS ${PHYSX_RELEASE_TYPES}) + # Variable PHYSX_CONFIGURATION used in FindPhysX.cmake is set above where + # iMSTK_USE_PHYSX CMake option is defined. find_package(PhysX REQUIRED) endif()