SCons: Allow unbundling bullet on Linux (only 2.87+)

This commit is contained in:
Rémi Verschelde 2018-01-13 15:16:11 +01:00
parent af9c2f8b9c
commit e141845bfb
5 changed files with 32 additions and 14 deletions

View file

@ -171,6 +171,7 @@ opts.Add(BoolVariable('dev', "If yes, alias for verbose=yes warnings=all", False
opts.Add(EnumVariable('macports_clang', "Build using clang from MacPorts", 'no', ('no', '5.0', 'devel')))
# Thirdparty libraries
opts.Add(BoolVariable('builtin_bullet', "Use the builtin bullet library", True))
opts.Add(BoolVariable('builtin_enet', "Use the builtin enet library", True))
opts.Add(BoolVariable('builtin_freetype', "Use the builtin freetype library", True))
opts.Add(BoolVariable('builtin_libogg', "Use the builtin libogg library", True))

View file

@ -3,14 +3,15 @@
Import('env')
Import('env_modules')
# build only version 2
# Bullet 2.87
env_bullet = env_modules.Clone()
thirdparty_dir = "#thirdparty/bullet/"
# Thirdparty source files
bullet2_src = [
if env['builtin_bullet']:
# Build only version 2 for now (as of 2.87)
thirdparty_dir = "#thirdparty/bullet/"
bullet2_src = [
# BulletCollision
"BulletCollision/BroadphaseCollision/btAxisSweep3.cpp"
, "BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp"
@ -181,14 +182,10 @@ bullet2_src = [
, "LinearMath/btVector3.cpp"
]
bullet_sources = [thirdparty_dir + file for file in bullet2_src]
thirdparty_sources = [thirdparty_dir + file for file in bullet2_src]
# include headers
env_bullet.Append(CPPPATH=[thirdparty_dir])
env_bullet.add_source_files(env.modules_sources, bullet_sources)
env_bullet.add_source_files(env.modules_sources, thirdparty_sources)
env_bullet.Append(CPPPATH=[thirdparty_dir])
# Godot source files
env_bullet.add_source_files(env.modules_sources, "*.cpp")
Export('env')

View file

@ -3,10 +3,10 @@
Import('env')
Import('env_modules')
# Thirdparty source files
env_enet = env_modules.Clone()
# Thirdparty source files
if env['builtin_enet']:
thirdparty_dir = "#thirdparty/enet/"
thirdparty_sources = [

View file

@ -86,6 +86,16 @@ def configure(env):
if not env['builtin_libpng']:
env.ParseConfig('pkg-config libpng --cflags --libs')
if not env['builtin_bullet']:
# We need at least version 2.87
import subprocess
bullet_version = subprocess.check_output(['pkg-config', 'bullet', '--modversion']).strip()
if bullet_version < "2.87":
# Abort as system bullet was requested but too old
print("Bullet: System version {0} does not match minimal requirements ({1}). Aborting.".format(bullet_version, "2.87"))
sys.exit(255)
env.ParseConfig('pkg-config bullet --cflags --libs')
if not env['builtin_enet']:
env.ParseConfig('pkg-config libenet --cflags --libs')

View file

@ -172,6 +172,16 @@ def configure(env):
if not env['builtin_libpng']:
env.ParseConfig('pkg-config libpng --cflags --libs')
if not env['builtin_bullet']:
# We need at least version 2.87
import subprocess
bullet_version = subprocess.check_output(['pkg-config', 'bullet', '--modversion']).strip()
if bullet_version < "2.87":
# Abort as system bullet was requested but too old
print("Bullet: System version {0} does not match minimal requirements ({1}). Aborting.".format(bullet_version, "2.87"))
sys.exit(255)
env.ParseConfig('pkg-config bullet --cflags --libs')
if not env['builtin_enet']:
env.ParseConfig('pkg-config libenet --cflags --libs')