README
Bullet binaries
This is a part of Node3D project.
npm i deps-bullet-raub
Synopsis
This dependency package is distributing Bullet Physics binaries through NPM for Node.js addons.
- Platforms (x64): Windows, Linux, OSX.
- Library: Bullet physics.
- Linking: static lib-type.
Usage
If you don't know Bullet Physics, then probably you could learn it better before rushing into the Node.js addons with it. Anyway the official manual is a good place to start. Also there are a lot of examples.
And, the most important, take a look at the existing bullet-raub addon, that exports a very simple API for Node.js.
Example binding.gyp
As in glfw-raub Node.js addon.
{
'variables': {
'bin' : '<!(node -p "require(\'addon-tools-raub\').bin")',
'bullet_include' : '<!(node -p "require(\'deps-bullet-raub\').include")',
'bullet_bin' : '<!(node -p "require(\'deps-bullet-raub\').bin")',
},
'targets': [
{
'target_name' : 'bullet',
'sources' : [
'cpp/bindings.cpp',
'cpp/body.cpp',
'cpp/joint.cpp',
'cpp/scene.cpp',
],
'include_dirs' : [
'<!@(node -p "require(\'addon-tools-raub\').include")',
'<(bullet_include)',
],
'library_dirs' : [ '<(bullet_bin)' ],
'libraries' : [ '-lbullet' ],
'cflags!': ['-fno-exceptions'],
'cflags_cc!': ['-fno-exceptions'],
'conditions': [
[
'OS=="linux"',
{
'libraries': [
"-Wl,-rpath,'$ORIGIN'",
"-Wl,-rpath,'$ORIGIN/../node_modules/deps-bullet-raub/<(bin)'",
"-Wl,-rpath,'$ORIGIN/../../deps-bullet-raub/<(bin)'",
],
'defines': ['__linux__'],
}
],
[
'OS=="mac"',
{
'libraries': [
'-Wl,-rpath,@loader_path',
'-Wl,-rpath,@loader_path/../node_modules/deps-bullet-raub/<(bin)',
'-Wl,-rpath,@loader_path/../../deps-bullet-raub/<(bin)',
],
'defines': ['__APPLE__'],
}
],
[
'OS=="win"',
{
'defines' : [
'WIN32_LEAN_AND_MEAN',
'VC_EXTRALEAN',
'_WIN32',
],
'msvs_settings' : {
'VCCLCompilerTool' : {
'AdditionalOptions' : [
'/GL', '/GF', '/EHsc', '/GS', '/Gy', '/GR-',
]
},
'VCLinkerTool' : {
'AdditionalOptions' : ['/RELEASE','/OPT:REF','/OPT:ICF','/LTCG'],
},
},
},
],
],
},
]
}
addon.cpp
#include <...>
Legal notice
This software uses the Bullet physics open source library. Bullet is legally used under the ZLIB license. It is explicitly stated that Bullet can be used commercially in closed-source projects. Bullet licensing information (a COPY) is given in a separate file, which also can be found on Bullet's official repository.
Binaries for all current platforms are built through MAKE system with
Travis CI matrix.
See Travis config for details.
Brute-force extracted Bullet sources are
inside cpp
folder.
As the layout of Bullet's source tree and the way it is compiled were changed, the whole
new codebase is published here to both comply with ZLIB requirements and provide means for
further expansion of this set of precompiled binaries to different platforms.
Only Bullet-2 part is compiled, Bullet-3 and CL are excluded, for now. No changes to the original content of any Bullet source file were made. No claims are made that any physics algorithms are changed/invented within this repository.