Skip to content
Snippets Groups Projects
Unverified Commit f8a1edb0 authored by Jean-Christophe Fillion-Robin's avatar Jean-Christophe Fillion-Robin
Browse files

COMP: Simplify and fix handling of PHYSX_CONFIGURATION option

This commit sets the cache variable prior configuring the outer
build (SUPERBUILD=ON) and it makes sure it is also propagated
down to the inner project.
parent 1ab2eaac
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
......@@ -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()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment