forked from bartvdbraak/blender
181e7f98b2
This would give some performance boost when solving huge scenes, amount of boost depends on particular scene. For now enable all of the specializations, in the future we might add some local patches and restrict only unneeded ones.
66 lines
2.2 KiB
Python
66 lines
2.2 KiB
Python
#!/usr/bin/python
|
|
|
|
# NOTE: This file is automatically generated by bundle.sh script
|
|
# If you're doing changes in this file, please update template
|
|
# in that script too
|
|
|
|
import sys
|
|
import os
|
|
|
|
Import('env')
|
|
|
|
src = []
|
|
defs = []
|
|
|
|
src += env.Glob('internal/ceres/*.cc')
|
|
src += env.Glob('internal/ceres/generated/schur_eliminator_d_d_d.cc')
|
|
src += env.Glob('internal/ceres/generated/partitioned_matrix_view_d_d_d.cc')
|
|
src += env.Glob('internal/ceres/generated/*.cc')
|
|
|
|
defs.append('CERES_HAVE_PTHREAD')
|
|
defs.append('CERES_NO_SUITESPARSE')
|
|
defs.append('CERES_NO_CXSPARSE')
|
|
defs.append('CERES_NO_LAPACK')
|
|
defs.append('CERES_HAVE_RWLOCK')
|
|
|
|
if env['WITH_BF_OPENMP']:
|
|
defs.append('CERES_USE_OPENMP')
|
|
|
|
if env['WITH_UNORDERED_MAP_SUPPORT']:
|
|
if env['UNORDERED_MAP_HEADER'] == 'unordered_map':
|
|
if env['UNORDERED_MAP_NAMESPACE'] == 'std':
|
|
defs.append('CERES_STD_UNORDERED_MAP')
|
|
elif env['UNORDERED_MAP_NAMESPACE'] == 'std::tr1':
|
|
defs.append('CERES_STD_UNORDERED_MAP_IN_TR1_NAMESPACE')
|
|
elif env['UNORDERED_MAP_NAMESPACE'] == 'std::tr1':
|
|
defs.append('CERES_TR1_UNORDERED_MAP')
|
|
else:
|
|
print("-- Replacing unordered_map/set with map/set (warning: slower!)")
|
|
defs.append('CERES_NO_UNORDERED_MAP')
|
|
|
|
if not env['WITH_SHARED_PTR_SUPPORT']:
|
|
print("-- Unable to find shared_ptr which is required for compilation.")
|
|
exit(1)
|
|
|
|
if env['SHARED_PTR_HEADER'] == 'tr1/memory':
|
|
defs.append('CERES_TR1_MEMORY_HEADER')
|
|
if env['SHARED_PTR_NAMESPACE'] == 'std::tr1':
|
|
defs.append('CERES_TR1_SHARED_PTR')
|
|
|
|
incs = '. ../../ ../../../Eigen3 ./include ./internal ../gflags ./config'
|
|
|
|
# work around broken hashtable in 10.5 SDK
|
|
if env['OURPLATFORM'] == 'darwin' and env['WITH_BF_BOOST']:
|
|
incs += ' ' + env['BF_BOOST_INC']
|
|
defs.append('CERES_HASH_BOOST')
|
|
|
|
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc', 'win64-mingw'):
|
|
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
|
|
incs += ' ../msinttypes'
|
|
|
|
incs += ' ../glog/src/windows'
|
|
else:
|
|
incs += ' ../glog/src'
|
|
|
|
env.BlenderLib ( libname = 'extern_ceres', sources=src, includes=Split(incs), defines=defs, libtype=['extern', 'player'], priority=[20,137])
|