Remove support for single-precision Bullet, fail during configuration instead of during linking.

This commit is contained in:
fredzio 2021-05-02 17:48:50 +02:00
parent 74ce9ffb85
commit 6fd04cb8f6
6 changed files with 60 additions and 30 deletions

View file

@ -0,0 +1,45 @@
set(TMP_ROOT ${CMAKE_BINARY_DIR}/try-compile)
file(MAKE_DIRECTORY ${TMP_ROOT})
file(WRITE ${TMP_ROOT}/checkbullet.cpp
"
#include <BulletCollision/CollisionShapes/btSphereShape.h>
int main(int argc, char** argv)
{
btSphereShape shape(1.0);
btScalar mass(1.0);
btVector3 inertia;
shape.calculateLocalInertia(mass, inertia);
return 0;
}
")
file(WRITE ${TMP_ROOT}/CMakeLists.txt
"
cmake_minimum_required(VERSION 3.1.0)
project(checkbullet)
add_executable(checkbullet checkbullet.cpp)
find_package(Bullet REQUIRED COMPONENTS BulletCollision LinearMath)
target_compile_definitions(checkbullet PUBLIC BT_USE_DOUBLE_PRECISION)
include_directories(\$\{BULLET_INCLUDE_DIRS\})
include(${CMAKE_SOURCE_DIR}/cmake/OSIdentity.cmake)
if (UBUNTU_FOUND OR DEBIAN_FOUND)
target_link_libraries(checkbullet BulletCollision-float64 LinearMath-float64)
else()
target_link_libraries(checkbullet \$\{BULLET_LIBRARIES\})
endif()
")
if (DEFINED BULLET_ROOT)
set(ROOT "-DBULLET_ROOT=${BULLET_ROOT}")
endif()
message(STATUS "Checking if Bullet uses double precision")
try_compile(RESULT_VAR
${CMAKE_BINARY_DIR}/temp
${TMP_ROOT}
checkbullet
CMAKE_FLAGS "${ROOT}"
)
set(HAS_DOUBLE_PRECISION_BULLET ${RESULT_VAR})