Add the option BUILD_MULTITHREADING to CMAKE, only enabled on APPLE and MSVC platforms. This controls multi-core (BulletMultiThreaded), MiniCL, DX11 and OpenCL acceleration.
On other platforms (Linux) it might work, but it is unsupported. Fix some warnings in btBulletWorldImprter
This commit is contained in:
239
CMakeLists.txt
239
CMakeLists.txt
@@ -22,11 +22,7 @@ SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")
|
|||||||
|
|
||||||
OPTION(USE_DOUBLE_PRECISION "Use double precision" OFF)
|
OPTION(USE_DOUBLE_PRECISION "Use double precision" OFF)
|
||||||
OPTION(USE_GRAPHICAL_BENCHMARK "Use Graphical Benchmark" ON)
|
OPTION(USE_GRAPHICAL_BENCHMARK "Use Graphical Benchmark" ON)
|
||||||
OPTION(USE_MULTITHREADED_BENCHMARK "Use Multithreaded Benchmark" OFF)
|
|
||||||
|
|
||||||
IF (USE_MULTITHREADED_BENCHMARK)
|
|
||||||
ADD_DEFINITIONS(-DUSE_PARALLEL_SOLVER_BENCHMARK -DUSE_PARALLEL_DISPATCHER_BENCHMARK)
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
OPTION(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC Runtime Library DLL (/MD or /MDd)" OFF)
|
OPTION(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC Runtime Library DLL (/MD or /MDd)" OFF)
|
||||||
OPTION(USE_MSVC_INCREMENTAL_LINKING "Use MSVC Incremental Linking" OFF)
|
OPTION(USE_MSVC_INCREMENTAL_LINKING "Use MSVC Incremental Linking" OFF)
|
||||||
@@ -42,14 +38,141 @@ IF (USE_CUSTOM_VECTOR_MATH)
|
|||||||
ENDIF(WIN32)
|
ENDIF(WIN32)
|
||||||
ENDIF(USE_CUSTOM_VECTOR_MATH)
|
ENDIF(USE_CUSTOM_VECTOR_MATH)
|
||||||
|
|
||||||
IF (MSVC)
|
|
||||||
|
IF (APPLE OR MSVC)
|
||||||
|
OPTION(BUILD_MULTITHREADING "Use BulletMultiThreading" ON)
|
||||||
|
ELSE()
|
||||||
|
OPTION(BUILD_MULTITHREADING "Use BulletMultiThreading" OFF)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF (BUILD_MULTITHREADING)
|
||||||
|
OPTION(USE_MULTITHREADED_BENCHMARK "Use Multithreaded Benchmark" OFF)
|
||||||
|
IF (USE_MULTITHREADED_BENCHMARK)
|
||||||
|
ADD_DEFINITIONS(-DUSE_PARALLEL_SOLVER_BENCHMARK -DUSE_PARALLEL_DISPATCHER_BENCHMARK)
|
||||||
|
ENDIF(USE_MULTITHREADED_BENCHMARK)
|
||||||
|
|
||||||
|
IF (MSVC OR APPLE)
|
||||||
|
OPTION(BUILD_MINICL_OPENCL_DEMOS "Build OpenCL demos for MiniCL (Generic CPU)" ON)
|
||||||
|
ELSE()
|
||||||
|
OPTION(BUILD_MINICL_OPENCL_DEMOS "Build OpenCL demos for MiniCL (Generic CPU)" OFF)
|
||||||
|
ENDIF(MSVC OR APPLE)
|
||||||
|
|
||||||
|
IF(MSVC)
|
||||||
FIND_PATH(DIRECTX_SDK_BASE_DIR Include/D3D11.h PATH $ENV{DXSDK_DIR} )
|
FIND_PATH(DIRECTX_SDK_BASE_DIR Include/D3D11.h PATH $ENV{DXSDK_DIR} )
|
||||||
IF(DIRECTX_SDK_BASE_DIR)
|
IF(DIRECTX_SDK_BASE_DIR)
|
||||||
OPTION(USE_DX11 "Use DirectX 11" ON)
|
OPTION(USE_DX11 "Use DirectX 11" ON)
|
||||||
ELSE()
|
ELSE()
|
||||||
OPTION(USE_DX11 "Use DirectX 11" OFF)
|
OPTION(USE_DX11 "Use DirectX 11" OFF)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF(MSVC)
|
|
||||||
|
FIND_PATH(AMD_OPENCL_BASE_DIR include/CL/cl.h PATH $ENV{ATISTREAMSDKROOT} $ENV{AMDAPPSDKROOT} )
|
||||||
|
IF(AMD_OPENCL_BASE_DIR)
|
||||||
|
#AMD adds an extras slash at the end of the ATISTREAMSDKROOT variable
|
||||||
|
SET(AMD_OPENCL_INCLUDES ${AMD_OPENCL_BASE_DIR}/include )
|
||||||
|
MESSAGE("AMD OPENCL SDK FOUND")
|
||||||
|
IF (CMAKE_CL_64)
|
||||||
|
SET(CMAKE_ATISTREAMSDK_LIBPATH ${AMD_OPENCL_BASE_DIR}/lib/x86_64 )
|
||||||
|
ELSE(CMAKE_CL_64)
|
||||||
|
SET(CMAKE_ATISTREAMSDK_LIBPATH ${AMD_OPENCL_BASE_DIR}/lib/x86 )
|
||||||
|
ENDIF(CMAKE_CL_64)
|
||||||
|
SET(CMAKE_ATISTREAMSDK_LIBRARY ${CMAKE_ATISTREAMSDK_LIBPATH}/OpenCL.lib )
|
||||||
|
OPTION(BUILD_AMD_OPENCL_DEMOS "Build OpenCL demos for AMD (GPU or CPU)" ON)
|
||||||
|
IF (CMAKE_CL_64)
|
||||||
|
SET(CMAK_GLEW_LIBRARY
|
||||||
|
${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64s.lib )
|
||||||
|
ELSE(CMAKE_CL_64)
|
||||||
|
SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32s.lib )
|
||||||
|
ENDIF(CMAKE_CL_64)
|
||||||
|
ELSE()
|
||||||
|
OPTION(BUILD_AMD_OPENCL_DEMOS "Build OpenCL demos for AMD (GPU or CPU)" OFF)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
FIND_PATH(INTEL_OPENCL_BASE_DIR include/CL/cl.h PATH $ENV{INTELOCLSDKROOT} )
|
||||||
|
IF(INTEL_OPENCL_BASE_DIR)
|
||||||
|
SET(INTEL_OPENCL_INCLUDES ${INTEL_OPENCL_BASE_DIR}/include )
|
||||||
|
MESSAGE("INTEL OPENCL SDK FOUND")
|
||||||
|
MESSAGE(${INTEL_OPENCL_INCLUDES})
|
||||||
|
IF (CMAKE_CL_64)
|
||||||
|
SET(CMAKE_INTELOCLSDK_LIBPATH ${INTEL_OPENCL_BASE_DIR}/lib/x64 )
|
||||||
|
ELSE(CMAKE_CL_64)
|
||||||
|
SET(CMAKE_INTELOCLSDK_LIBPATH ${INTEL_OPENCL_BASE_DIR}/lib/x86 )
|
||||||
|
ENDIF(CMAKE_CL_64)
|
||||||
|
SET(INTEL_OPENCL_LIBRARIES ${CMAKE_INTELOCLSDK_LIBPATH}/OpenCL.lib)
|
||||||
|
OPTION(BUILD_INTEL_OPENCL_DEMOS "Build OpenCL demos for Intel (CPU)" ON)
|
||||||
|
ELSE()
|
||||||
|
OPTION(BUILD_INTEL_OPENCL_DEMOS "Build OpenCL demos for Intel (CPU)" OFF)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
FIND_PATH(NVIDIA_OPENCL_BASE_DIR include/CL/cl.h PATH $ENV{CUDA_PATH} )
|
||||||
|
IF(NVIDIA_OPENCL_BASE_DIR)
|
||||||
|
SET(NVIDIA_OPENCL_INCLUDES ${NVIDIA_OPENCL_BASE_DIR}/include )
|
||||||
|
MESSAGE("NVIDIA OPENCL SDK FOUND")
|
||||||
|
MESSAGE(${NVIDIA_OPENCL_INCLUDES})
|
||||||
|
IF (CMAKE_CL_64)
|
||||||
|
SET(CMAKE_NVSDKCOMPUTE_LIBPATH ${NVIDIA_OPENCL_BASE_DIR}/lib/x64 )
|
||||||
|
ELSE(CMAKE_CL_64)
|
||||||
|
SET(CMAKE_NVSDKCOMPUTE_LIBPATH ${NVIDIA_OPENCL_BASE_DIR}/lib/Win32 )
|
||||||
|
ENDIF(CMAKE_CL_64)
|
||||||
|
SET(NVIDIA_OPENCL_LIBRARIES ${CMAKE_NVSDKCOMPUTE_LIBPATH}/OpenCL.lib)
|
||||||
|
|
||||||
|
OPTION(BUILD_NVIDIA_OPENCL_DEMOS "Build OpenCL demos for NVidia (GPU)" ON)
|
||||||
|
ELSE()
|
||||||
|
OPTION(BUILD_NVIDIA_OPENCL_DEMOS "Build OpenCL demos for NVidia (GPU)" OFF)
|
||||||
|
ENDIF()
|
||||||
|
ELSE(MSVC)
|
||||||
|
FIND_PATH(AMD_OPENCL_BASE_DIR include/CL/cl.h PATH $ENV{ATISTREAMSDKROOT} $ENV{AMDAPPSDKROOT} )
|
||||||
|
IF(AMD_OPENCL_BASE_DIR)
|
||||||
|
#AMD adds an extras slash at the end of the ATISTREAMSDKROOT variable
|
||||||
|
SET(AMD_OPENCL_INCLUDES ${AMD_OPENCL_BASE_DIR}/include )
|
||||||
|
MESSAGE("AMD OPENCL SDK FOUND")
|
||||||
|
MESSAGE(${AMD_OPENCL_INCLUDES})
|
||||||
|
IF (CMAKE_CL_64)
|
||||||
|
SET(CMAKE_ATISTREAMSDK_LIBPATH ${AMD_OPENCL_BASE_DIR}/lib/x86_64 )
|
||||||
|
ELSE(CMAKE_CL_64)
|
||||||
|
SET(CMAKE_ATISTREAMSDK_LIBPATH ${AMD_OPENCL_BASE_DIR}/lib/x86 )
|
||||||
|
ENDIF(CMAKE_CL_64)
|
||||||
|
OPTION(BUILD_AMD_OPENCL_DEMOS "Build OpenCL demos for AMD (GPU or CPU)" ON)
|
||||||
|
SET(CMAKE_ATISTREAMSDK_LIBRARY OpenCL )
|
||||||
|
ELSE()
|
||||||
|
OPTION(BUILD_AMD_OPENCL_DEMOS "Build OpenCL demos for AMD (GPU or CPU)" OFF)
|
||||||
|
ENDIF(AMD_OPENCL_BASE_DIR)
|
||||||
|
|
||||||
|
FIND_PATH(INTEL_OPENCL_INCLUDES CL/cl.h)
|
||||||
|
FIND_PATH(INTEL_OPENCL_ICD_CFG intelocl64.icd /etc/OpenCL/vendors)
|
||||||
|
FIND_LIBRARY(INTEL_OPENCL_LIBRARIES OpenCL PATH /usr/lib64)
|
||||||
|
IF (INTEL_OPENCL_INCLUDES AND INTEL_OPENCL_LIBRARIES AND INTEL_OPENCL_ICD_CFG)
|
||||||
|
MESSAGE("INTEL OPENCL SDK FOUND")
|
||||||
|
MESSAGE(${INTEL_OPENCL_LIBRARIES})
|
||||||
|
OPTION(BUILD_INTEL_OPENCL_DEMOS "Build OpenCL demos for Intel (CPU)" ON)
|
||||||
|
ELSE ()
|
||||||
|
MESSAGE("INTEL OPENCL NOT FOUND")
|
||||||
|
OPTION(BUILD_INTEL_OPENCL_DEMOS "Build OpenCL demos for Intel (CPU)" OFF)
|
||||||
|
ENDIF ()
|
||||||
|
|
||||||
|
|
||||||
|
FIND_PATH(NVIDIA_OPENCL_INCLUDES CL/cl.h)
|
||||||
|
FIND_PATH(NVIDIA_OPENCL_ICD_CFG nvidia.icd /etc/OpenCL/vendors)
|
||||||
|
FIND_LIBRARY(NVIDIA_OPENCL_LIBRARIES OpenCL PATH /usr/lib64 /usr/local/lib)
|
||||||
|
IF (NVIDIA_OPENCL_INCLUDES AND NVIDIA_OPENCL_LIBRARIES AND NVIDIA_OPENCL_ICD_CFG)
|
||||||
|
MESSAGE("NVidia OPENCL FOUND")
|
||||||
|
MESSAGE(${NVIDIA_OPENCL_LIBRARIES})
|
||||||
|
OPTION(BUILD_NVIDIA_OPENCL_DEMOS "Build OpenCL demos for NVidia (GPU)" ON)
|
||||||
|
ELSE ()
|
||||||
|
MESSAGE("NVidia OPENCL NOT FOUND")
|
||||||
|
OPTION(BUILD_NVIDIA_OPENCL_DEMOS "Build OpenCL demos for NVidia (GPU)" OFF)
|
||||||
|
ENDIF ()
|
||||||
|
ENDIF(MSVC)
|
||||||
|
|
||||||
|
ELSE(BUILD_MULTITHREADING)
|
||||||
|
# SET(BUILD_NVIDIA_OPENCL_DEMOS OFF CACHE BOOL "Build OpenCL demos for NVidia" FORCE)
|
||||||
|
# SET(BUILD_AMD_OPENCL_DEMOS OFF CACHE BOOL "Build OpenCL demos for AMD" FORCE)
|
||||||
|
# SET(BUILD_INTEL_OPENCL_DEMOS OFF CACHE BOOL "Build OpenCL demos for Intel (CPU)" FORCE)
|
||||||
|
# SET(BUILD_MINICL_OPENCL_DEMOS OFF CACHE BOOL "Build OpenCL demos for MiniCL (Generic CPU)" FORCE)
|
||||||
|
# SET(USE_DX11 OFF CACHE BOOL "Use DirectX 11" FORCE)
|
||||||
|
# SET(USE_MULTITHREADED_BENCHMARK OFF CACHE BOOL "Use Multithreaded Benchmark" FORCE)
|
||||||
|
ENDIF(BUILD_MULTITHREADING)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#SET(CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /INCREMENTAL:NO")
|
#SET(CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /INCREMENTAL:NO")
|
||||||
@@ -128,63 +251,6 @@ SET(CMAKE_RELWITHDEBINFO_POSTFIX "_RelWithDebugInfo" CACHE STRING "Adds a postfi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF(MSVC)
|
|
||||||
FIND_PATH(AMD_OPENCL_BASE_DIR include/CL/cl.h PATH $ENV{ATISTREAMSDKROOT} $ENV{AMDAPPSDKROOT} )
|
|
||||||
IF(AMD_OPENCL_BASE_DIR)
|
|
||||||
#AMD adds an extras slash at the end of the ATISTREAMSDKROOT variable
|
|
||||||
SET(AMD_OPENCL_INCLUDES ${AMD_OPENCL_BASE_DIR}/include )
|
|
||||||
MESSAGE("AMD OPENCL SDK FOUND")
|
|
||||||
IF (CMAKE_CL_64)
|
|
||||||
SET(CMAKE_ATISTREAMSDK_LIBPATH ${AMD_OPENCL_BASE_DIR}/lib/x86_64 )
|
|
||||||
ELSE(CMAKE_CL_64)
|
|
||||||
SET(CMAKE_ATISTREAMSDK_LIBPATH ${AMD_OPENCL_BASE_DIR}/lib/x86 )
|
|
||||||
ENDIF(CMAKE_CL_64)
|
|
||||||
SET(CMAKE_ATISTREAMSDK_LIBRARY ${CMAKE_ATISTREAMSDK_LIBPATH}/OpenCL.lib )
|
|
||||||
OPTION(BUILD_AMD_OPENCL_DEMOS "Build OpenCL demos for AMD (GPU or CPU)" ON)
|
|
||||||
IF (CMAKE_CL_64)
|
|
||||||
SET(CMAK_GLEW_LIBRARY
|
|
||||||
${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64s.lib )
|
|
||||||
ELSE(CMAKE_CL_64)
|
|
||||||
SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32s.lib )
|
|
||||||
ENDIF(CMAKE_CL_64)
|
|
||||||
ELSE()
|
|
||||||
OPTION(BUILD_AMD_OPENCL_DEMOS "Build OpenCL demos for AMD (GPU or CPU)" OFF)
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
FIND_PATH(INTEL_OPENCL_BASE_DIR include/CL/cl.h PATH $ENV{INTELOCLSDKROOT} )
|
|
||||||
IF(INTEL_OPENCL_BASE_DIR)
|
|
||||||
SET(INTEL_OPENCL_INCLUDES ${INTEL_OPENCL_BASE_DIR}/include )
|
|
||||||
MESSAGE("INTEL OPENCL SDK FOUND")
|
|
||||||
MESSAGE(${INTEL_OPENCL_INCLUDES})
|
|
||||||
IF (CMAKE_CL_64)
|
|
||||||
SET(CMAKE_INTELOCLSDK_LIBPATH ${INTEL_OPENCL_BASE_DIR}/lib/x64 )
|
|
||||||
ELSE(CMAKE_CL_64)
|
|
||||||
SET(CMAKE_INTELOCLSDK_LIBPATH ${INTEL_OPENCL_BASE_DIR}/lib/x86 )
|
|
||||||
ENDIF(CMAKE_CL_64)
|
|
||||||
SET(INTEL_OPENCL_LIBRARIES ${CMAKE_INTELOCLSDK_LIBPATH}/OpenCL.lib)
|
|
||||||
OPTION(BUILD_INTEL_OPENCL_DEMOS "Build OpenCL demos for Intel (CPU)" ON)
|
|
||||||
ELSE()
|
|
||||||
OPTION(BUILD_INTEL_OPENCL_DEMOS "Build OpenCL demos for Intel (CPU)" OFF)
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
FIND_PATH(NVIDIA_OPENCL_BASE_DIR include/CL/cl.h PATH $ENV{CUDA_PATH} )
|
|
||||||
IF(NVIDIA_OPENCL_BASE_DIR)
|
|
||||||
SET(NVIDIA_OPENCL_INCLUDES ${NVIDIA_OPENCL_BASE_DIR}/include )
|
|
||||||
MESSAGE("NVIDIA OPENCL SDK FOUND")
|
|
||||||
MESSAGE(${NVIDIA_OPENCL_INCLUDES})
|
|
||||||
IF (CMAKE_CL_64)
|
|
||||||
SET(CMAKE_NVSDKCOMPUTE_LIBPATH ${NVIDIA_OPENCL_BASE_DIR}/lib/x64 )
|
|
||||||
ELSE(CMAKE_CL_64)
|
|
||||||
SET(CMAKE_NVSDKCOMPUTE_LIBPATH ${NVIDIA_OPENCL_BASE_DIR}/lib/Win32 )
|
|
||||||
ENDIF(CMAKE_CL_64)
|
|
||||||
SET(NVIDIA_OPENCL_LIBRARIES ${CMAKE_NVSDKCOMPUTE_LIBPATH}/OpenCL.lib)
|
|
||||||
|
|
||||||
OPTION(BUILD_NVIDIA_OPENCL_DEMOS "Build OpenCL demos for NVidia (GPU)" ON)
|
|
||||||
ELSE()
|
|
||||||
OPTION(BUILD_NVIDIA_OPENCL_DEMOS "Build OpenCL demos for NVidia (GPU)" OFF)
|
|
||||||
ENDIF()
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF (INTERNAL_CREATE_MSVC_RELATIVE_PATH_PROJECTFILES)
|
IF (INTERNAL_CREATE_MSVC_RELATIVE_PATH_PROJECTFILES)
|
||||||
@@ -194,53 +260,6 @@ ENDIF(INTERNAL_CREATE_MSVC_RELATIVE_PATH_PROJECTFILES)
|
|||||||
|
|
||||||
ENDIF (WIN32)
|
ENDIF (WIN32)
|
||||||
|
|
||||||
IF (MSVC OR APPLE)
|
|
||||||
OPTION(BUILD_MINICL_OPENCL_DEMOS "Build OpenCL demos for MiniCL (Generic CPU)" ON)
|
|
||||||
ELSE()
|
|
||||||
OPTION(BUILD_MINICL_OPENCL_DEMOS "Build OpenCL demos for MiniCL (Generic CPU)" OFF)
|
|
||||||
|
|
||||||
FIND_PATH(AMD_OPENCL_BASE_DIR include/CL/cl.h PATH $ENV{ATISTREAMSDKROOT} $ENV{AMDAPPSDKROOT} )
|
|
||||||
IF(AMD_OPENCL_BASE_DIR)
|
|
||||||
#AMD adds an extras slash at the end of the ATISTREAMSDKROOT variable
|
|
||||||
SET(AMD_OPENCL_INCLUDES ${AMD_OPENCL_BASE_DIR}/include )
|
|
||||||
MESSAGE("AMD OPENCL SDK FOUND")
|
|
||||||
MESSAGE(${AMD_OPENCL_INCLUDES})
|
|
||||||
IF (CMAKE_CL_64)
|
|
||||||
SET(CMAKE_ATISTREAMSDK_LIBPATH ${AMD_OPENCL_BASE_DIR}/lib/x86_64 )
|
|
||||||
ELSE(CMAKE_CL_64)
|
|
||||||
SET(CMAKE_ATISTREAMSDK_LIBPATH ${AMD_OPENCL_BASE_DIR}/lib/x86 )
|
|
||||||
ENDIF(CMAKE_CL_64)
|
|
||||||
OPTION(BUILD_AMD_OPENCL_DEMOS "Build OpenCL demos for AMD (GPU or CPU)" ON)
|
|
||||||
SET(CMAKE_ATISTREAMSDK_LIBRARY OpenCL )
|
|
||||||
ELSE()
|
|
||||||
OPTION(BUILD_AMD_OPENCL_DEMOS "Build OpenCL demos for AMD (GPU or CPU)" OFF)
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
FIND_PATH(INTEL_OPENCL_INCLUDES CL/cl.h)
|
|
||||||
FIND_PATH(INTEL_OPENCL_ICD_CFG intelocl64.icd /etc/OpenCL/vendors)
|
|
||||||
FIND_LIBRARY(INTEL_OPENCL_LIBRARIES OpenCL PATH /usr/lib64)
|
|
||||||
IF (INTEL_OPENCL_INCLUDES AND INTEL_OPENCL_LIBRARIES AND INTEL_OPENCL_ICD_CFG)
|
|
||||||
MESSAGE("INTEL OPENCL SDK FOUND")
|
|
||||||
MESSAGE(${INTEL_OPENCL_LIBRARIES})
|
|
||||||
OPTION(BUILD_INTEL_OPENCL_DEMOS "Build OpenCL demos for Intel (CPU)" ON)
|
|
||||||
ELSE ()
|
|
||||||
MESSAGE("INTEL OPENCL NOT FOUND")
|
|
||||||
OPTION(BUILD_INTEL_OPENCL_DEMOS "Build OpenCL demos for Intel (CPU)" OFF)
|
|
||||||
ENDIF ()
|
|
||||||
|
|
||||||
FIND_PATH(NVIDIA_OPENCL_INCLUDES CL/cl.h)
|
|
||||||
FIND_PATH(NVIDIA_OPENCL_ICD_CFG nvidia.icd /etc/OpenCL/vendors)
|
|
||||||
FIND_LIBRARY(NVIDIA_OPENCL_LIBRARIES OpenCL PATH /usr/lib64 /usr/local/lib)
|
|
||||||
IF (NVIDIA_OPENCL_INCLUDES AND NVIDIA_OPENCL_LIBRARIES AND NVIDIA_OPENCL_ICD_CFG)
|
|
||||||
MESSAGE("NVidia OPENCL FOUND")
|
|
||||||
MESSAGE(${NVIDIA_OPENCL_LIBRARIES})
|
|
||||||
OPTION(BUILD_NVIDIA_OPENCL_DEMOS "Build OpenCL demos for NVidia (GPU)" ON)
|
|
||||||
ELSE ()
|
|
||||||
MESSAGE("NVidia OPENCL NOT FOUND")
|
|
||||||
OPTION(BUILD_NVIDIA_OPENCL_DEMOS "Build OpenCL demos for NVidia (GPU)" OFF)
|
|
||||||
ENDIF ()
|
|
||||||
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
OPTION(BUILD_CPU_DEMOS "Build original Bullet CPU demos" ON)
|
OPTION(BUILD_CPU_DEMOS "Build original Bullet CPU demos" ON)
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ ${VECTOR_MATH_INCLUDE}
|
|||||||
)
|
)
|
||||||
|
|
||||||
LINK_LIBRARIES(
|
LINK_LIBRARIES(
|
||||||
GLUI GIMPACTUtils HACD ConvexDecomposition BulletMultiThreaded OpenGLSupport BulletWorldImporter BulletSoftBody BulletDynamics BulletCollision BulletFileLoader LinearMath ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}
|
GLUI GIMPACTUtils HACD ConvexDecomposition OpenGLSupport BulletWorldImporter BulletSoftBody BulletDynamics BulletCollision BulletFileLoader LinearMath ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
SET(AllBulletDemos_SRCS
|
SET(AllBulletDemos_SRCS
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
IF (USE_DX11)
|
IF (USE_DX11 AND BUILD_MULTITHREADING)
|
||||||
SUBDIRS(DX11ClothDemo)
|
SUBDIRS(DX11ClothDemo)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
@@ -12,29 +12,32 @@ IF (USE_GLUT)
|
|||||||
SET(SharedDemoSubdirs
|
SET(SharedDemoSubdirs
|
||||||
OpenGL AllBulletDemos ConvexDecompositionDemo
|
OpenGL AllBulletDemos ConvexDecompositionDemo
|
||||||
CcdPhysicsDemo BulletXmlImportDemo ConstraintDemo SliderConstraintDemo GenericJointDemo Raytracer
|
CcdPhysicsDemo BulletXmlImportDemo ConstraintDemo SliderConstraintDemo GenericJointDemo Raytracer
|
||||||
RagdollDemo ForkLiftDemo BasicDemo RollingFrictionDemo RaytestDemo VoronoiFractureDemo GyroscopicDemo FractureDemo Box2dDemo BspDemo MovingConcaveDemo VehicleDemo
|
RagdollDemo ForkLiftDemo BasicDemo RollingFrictionDemo RaytestDemo VoronoiFractureDemo
|
||||||
|
GyroscopicDemo FractureDemo Box2dDemo BspDemo MovingConcaveDemo VehicleDemo
|
||||||
UserCollisionAlgorithm CharacterDemo SoftDemo
|
UserCollisionAlgorithm CharacterDemo SoftDemo
|
||||||
CollisionInterfaceDemo ConcaveConvexcastDemo SimplexDemo DynamicControlDemo
|
CollisionInterfaceDemo ConcaveConvexcastDemo SimplexDemo DynamicControlDemo
|
||||||
ConvexHullDistance
|
ConvexHullDistance
|
||||||
DoublePrecisionDemo ConcaveDemo CollisionDemo
|
DoublePrecisionDemo ConcaveDemo CollisionDemo
|
||||||
ContinuousConvexCollision ConcaveRaycastDemo GjkConvexCastDemo
|
ContinuousConvexCollision ConcaveRaycastDemo GjkConvexCastDemo
|
||||||
MultiMaterialDemo SerializeDemo InternalEdgeDemo
|
MultiMaterialDemo SerializeDemo InternalEdgeDemo
|
||||||
MultiThreadedDemo
|
|
||||||
ParticlesOpenCL
|
|
||||||
OpenCLClothDemo
|
|
||||||
)
|
)
|
||||||
ELSE()
|
ELSE()
|
||||||
SET(SharedDemoSubdirs
|
SET(SharedDemoSubdirs OpenGL )
|
||||||
OpenGL
|
ENDIF(BUILD_CPU_DEMOS)
|
||||||
)
|
|
||||||
ENDIF()
|
IF(BUILD_MULTITHREADING)
|
||||||
|
SUBDIRS( MultiThreadedDemo ParticlesOpenCL OpenCLClothDemo )
|
||||||
|
ENDIF(BUILD_MULTITHREADING)
|
||||||
|
|
||||||
SUBDIRS(
|
SUBDIRS(
|
||||||
${SharedDemoSubdirs}
|
${SharedDemoSubdirs}
|
||||||
Benchmarks
|
Benchmarks
|
||||||
ThreadingDemo
|
|
||||||
VectorAdd_OpenCL
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
IF(BUILD_MULTITHREADING)
|
||||||
|
SUBDIRS( ThreadingDemo VectorAdd_OpenCL )
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
ENDIF(GLUT_FOUND)
|
ENDIF(GLUT_FOUND)
|
||||||
ELSE (USE_GLUT)
|
ELSE (USE_GLUT)
|
||||||
IF (WIN32)
|
IF (WIN32)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
SUBDIRS( MiniCL )
|
SUBDIRS( MiniCL )
|
||||||
|
|
||||||
IF(BUILD_INTEL_OPENCL_DEMOS)
|
IF(BUILD_INTEL_OPENCL_DEMOS)
|
||||||
SUBDIRS(Intel)
|
SUBDIRS(Intel)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ SET(GLUT_ROOT ${BULLET_PHYSICS_SOURCE_DIR}/Glut)
|
|||||||
# You shouldn't have to modify anything below this line
|
# You shouldn't have to modify anything below this line
|
||||||
########################################################
|
########################################################
|
||||||
|
|
||||||
IF(BUILD_AMD_OPENCL_DEMOS)
|
IF(BUILD_AMD_OPENCL_DEMOS AND BUILD_MULTITHREADING)
|
||||||
SUBDIRS(AMD)
|
SUBDIRS(AMD)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
|||||||
@@ -143,25 +143,25 @@ bool btBulletWorldImporter::convertAllObjects( bParse::btBulletFile* bulletFile
|
|||||||
btVector3 gravity;
|
btVector3 gravity;
|
||||||
gravity.deSerializeDouble(solverInfoData->m_gravity);
|
gravity.deSerializeDouble(solverInfoData->m_gravity);
|
||||||
|
|
||||||
solverInfo.m_tau = solverInfoData->m_solverInfo.m_tau;
|
solverInfo.m_tau = btScalar(solverInfoData->m_solverInfo.m_tau);
|
||||||
solverInfo.m_damping = solverInfoData->m_solverInfo.m_damping;
|
solverInfo.m_damping = btScalar(solverInfoData->m_solverInfo.m_damping);
|
||||||
solverInfo.m_friction = solverInfoData->m_solverInfo.m_friction;
|
solverInfo.m_friction = btScalar(solverInfoData->m_solverInfo.m_friction);
|
||||||
solverInfo.m_timeStep = solverInfoData->m_solverInfo.m_timeStep;
|
solverInfo.m_timeStep = btScalar(solverInfoData->m_solverInfo.m_timeStep);
|
||||||
|
|
||||||
solverInfo.m_restitution = solverInfoData->m_solverInfo.m_restitution;
|
solverInfo.m_restitution = btScalar(solverInfoData->m_solverInfo.m_restitution);
|
||||||
solverInfo.m_maxErrorReduction = solverInfoData->m_solverInfo.m_maxErrorReduction;
|
solverInfo.m_maxErrorReduction = btScalar(solverInfoData->m_solverInfo.m_maxErrorReduction);
|
||||||
solverInfo.m_sor = solverInfoData->m_solverInfo.m_sor;
|
solverInfo.m_sor = btScalar(solverInfoData->m_solverInfo.m_sor);
|
||||||
solverInfo.m_erp = solverInfoData->m_solverInfo.m_erp;
|
solverInfo.m_erp = btScalar(solverInfoData->m_solverInfo.m_erp);
|
||||||
|
|
||||||
solverInfo.m_erp2 = solverInfoData->m_solverInfo.m_erp2;
|
solverInfo.m_erp2 = btScalar(solverInfoData->m_solverInfo.m_erp2);
|
||||||
solverInfo.m_globalCfm = solverInfoData->m_solverInfo.m_globalCfm;
|
solverInfo.m_globalCfm = btScalar(solverInfoData->m_solverInfo.m_globalCfm);
|
||||||
solverInfo.m_splitImpulsePenetrationThreshold = solverInfoData->m_solverInfo.m_splitImpulsePenetrationThreshold;
|
solverInfo.m_splitImpulsePenetrationThreshold = btScalar(solverInfoData->m_solverInfo.m_splitImpulsePenetrationThreshold);
|
||||||
solverInfo.m_splitImpulseTurnErp = solverInfoData->m_solverInfo.m_splitImpulseTurnErp;
|
solverInfo.m_splitImpulseTurnErp = btScalar(solverInfoData->m_solverInfo.m_splitImpulseTurnErp);
|
||||||
|
|
||||||
solverInfo.m_linearSlop = solverInfoData->m_solverInfo.m_linearSlop;
|
solverInfo.m_linearSlop = btScalar(solverInfoData->m_solverInfo.m_linearSlop);
|
||||||
solverInfo.m_warmstartingFactor = solverInfoData->m_solverInfo.m_warmstartingFactor;
|
solverInfo.m_warmstartingFactor = btScalar(solverInfoData->m_solverInfo.m_warmstartingFactor);
|
||||||
solverInfo.m_maxGyroscopicForce = solverInfoData->m_solverInfo.m_maxGyroscopicForce;
|
solverInfo.m_maxGyroscopicForce = btScalar(solverInfoData->m_solverInfo.m_maxGyroscopicForce);
|
||||||
solverInfo.m_singleAxisRollingFrictionThreshold = solverInfoData->m_solverInfo.m_singleAxisRollingFrictionThreshold;
|
solverInfo.m_singleAxisRollingFrictionThreshold = btScalar(solverInfoData->m_solverInfo.m_singleAxisRollingFrictionThreshold);
|
||||||
|
|
||||||
solverInfo.m_numIterations = solverInfoData->m_solverInfo.m_numIterations;
|
solverInfo.m_numIterations = solverInfoData->m_solverInfo.m_numIterations;
|
||||||
solverInfo.m_solverMode = solverInfoData->m_solverInfo.m_solverMode;
|
solverInfo.m_solverMode = solverInfoData->m_solverInfo.m_solverMode;
|
||||||
@@ -316,7 +316,7 @@ bool btBulletWorldImporter::convertAllObjects( bParse::btBulletFile* bulletFile
|
|||||||
if (!rbA && !rbB)
|
if (!rbA && !rbB)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
bool isDoublePrecisionData = bulletFile2->getFlags() & bParse::FD_DOUBLE_PRECISION;
|
bool isDoublePrecisionData = (bulletFile2->getFlags() & bParse::FD_DOUBLE_PRECISION)!=0;
|
||||||
convertConstraint(constraintData, rbA,rbB,isDoublePrecisionData, bulletFile2->getVersion());
|
convertConstraint(constraintData, rbA,rbB,isDoublePrecisionData, bulletFile2->getVersion());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
SUBDIRS( MiniCL BulletMultiThreaded BulletSoftBody BulletCollision BulletDynamics LinearMath )
|
SUBDIRS( BulletSoftBody BulletCollision BulletDynamics LinearMath )
|
||||||
|
|
||||||
|
IF(BUILD_MULTITHREADING)
|
||||||
|
SUBDIRS(MiniCL BulletMultiThreaded)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
IF(INSTALL_LIBS)
|
IF(INSTALL_LIBS)
|
||||||
#INSTALL of other files requires CMake 2.6
|
#INSTALL of other files requires CMake 2.6
|
||||||
|
|||||||
Reference in New Issue
Block a user