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'))) opts.Add(EnumVariable('macports_clang', "Build using clang from MacPorts", 'no', ('no', '5.0', 'devel')))
# Thirdparty libraries # 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_enet', "Use the builtin enet library", True))
opts.Add(BoolVariable('builtin_freetype', "Use the builtin freetype library", True)) opts.Add(BoolVariable('builtin_freetype', "Use the builtin freetype library", True))
opts.Add(BoolVariable('builtin_libogg', "Use the builtin libogg library", True)) opts.Add(BoolVariable('builtin_libogg', "Use the builtin libogg library", True))

View file

@ -3,11 +3,12 @@
Import('env') Import('env')
Import('env_modules') Import('env_modules')
# build only version 2
# Bullet 2.87
env_bullet = env_modules.Clone() env_bullet = env_modules.Clone()
# Thirdparty source files
if env['builtin_bullet']:
# Build only version 2 for now (as of 2.87)
thirdparty_dir = "#thirdparty/bullet/" thirdparty_dir = "#thirdparty/bullet/"
bullet2_src = [ bullet2_src = [
@ -181,14 +182,10 @@ bullet2_src = [
, "LinearMath/btVector3.cpp" , "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.add_source_files(env.modules_sources, thirdparty_sources)
env_bullet.Append(CPPPATH=[thirdparty_dir]) env_bullet.Append(CPPPATH=[thirdparty_dir])
env_bullet.add_source_files(env.modules_sources, bullet_sources)
# Godot source files # Godot source files
env_bullet.add_source_files(env.modules_sources, "*.cpp") env_bullet.add_source_files(env.modules_sources, "*.cpp")
Export('env')

View file

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

View file

@ -86,6 +86,16 @@ def configure(env):
if not env['builtin_libpng']: if not env['builtin_libpng']:
env.ParseConfig('pkg-config libpng --cflags --libs') 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']: if not env['builtin_enet']:
env.ParseConfig('pkg-config libenet --cflags --libs') env.ParseConfig('pkg-config libenet --cflags --libs')

View file

@ -172,6 +172,16 @@ def configure(env):
if not env['builtin_libpng']: if not env['builtin_libpng']:
env.ParseConfig('pkg-config libpng --cflags --libs') 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']: if not env['builtin_enet']:
env.ParseConfig('pkg-config libenet --cflags --libs') env.ParseConfig('pkg-config libenet --cflags --libs')