Bullet 的 CMake 编译流程
Bullet 的 CMake 编译流程
Table of Contents
linux 下基于 CMake 的编译流程
bullet 支持 linux、windows、mac、Android、iOS、BSD 等操作系统。 这里研究的版本是release 2.8.7 .
linux 下,执行 如下命令编译,生成库和可执行程序在 build 文件夹中。
./build_cmake_pybullet_double.sh
CMAKE 命令
- FILE (STRINGS "VERSION" BULLET_VERSION)
将"VERSION"字符串保存到 BULLET_VERSION 中。 - CMAKE_BUILD_TYPE 编译成 Debug 还是 Release.
- SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")
- ADD_DEFINITIONS 添加编译参数,比如 add_definitions(-DDEBUG)将在 gcc 命令行添加 DEBUG 宏定义
配置
- USE_DOUBLE_PRECISION
浮点计算的精度 OFF - USE_GRAPHICAL_BENCHMARK ON
- BUILD_SHARED_LIBS
编译成动态链接库 OFF - USE_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD
软体多物体动态?OFF - BULLET2_USE_THREAD_LOCKS
Build Bullet 2 libraries with mutex locking around certain operations (required for multi-threading) OFF - USE_CUSTOM_VECTOR_MATH
使用自定义的数学库 OFF
pybullet 的一些配置
install
bullet.pc.cmake 配置安装选项,默认安装在/usr/local/lib 中,头文件在/usr/local/include 中。
单元测试
cmake 文件在 test 目录中。
编译用的 cmake 文件
以下是 option 选项。 每个目录下都有 cmakelist.txt。
- BUILD_OPENGL3_DEMOS OFF
mac 系统下的 opengl demo. 目录在 Demos3 里面? - BUILD_BULLET2_DEMOS ON
编译 examples,目录在 examples 中。 - BUILD_EXTRA ON
编译 extras,目录在 extras 中。 - 源文件
目录在 src 中。
src cmake 文件
SUBDIRS( Bullet3OpenCL Bullet3Serialize/Bullet2FileLoader Bullet3Dynamics Bullet3Collision Bullet3Geometry ) SUBDIRS( BulletInverseDynamics BulletSoftBody BulletCollision BulletDynamics LinearMath Bullet3Common)
examples cmake 文件
SUBDIRS( HelloWorld BasicDemo ) SUBDIRS( ExampleBrowser RobotSimulator SharedMemory ThirdPartyLibs/Gwen ThirdPartyLibs/BussIK ThirdPartyLibs/clsocket OpenGLWindow ) SUBDIRS(pybullet)
extras cmake 文件
SUBDIRS( InverseDynamics BulletRobotics obj2sdf Serialize ConvexDecomposition HACD GIMPACTUtils )
功能模块
待续。