forked from bartvdbraak/blender
Bullet: better workaround for failing friction with clang 3.4, remove the obsolete compileflag magic
This commit is contained in:
parent
415e10a0ef
commit
8a4210074c
6
extern/bullet2/CMakeLists.txt
vendored
6
extern/bullet2/CMakeLists.txt
vendored
@ -401,12 +401,6 @@ set(SRC
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
# needed for gcc 4.6+
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
|
||||
|
||||
endif()
|
||||
|
||||
# Tentative fix for bullet misbehavior (T38746), needs further clarification what flags conflict here
|
||||
if(APPLE AND CMAKE_C_COMPILER_ID MATCHES "Clang" AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS '3.4')
|
||||
SET_SOURCE_FILES_PROPERTIES(src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp COMPILE_FLAGS "-O0")
|
||||
endif()
|
||||
|
||||
blender_add_lib(extern_bullet "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
@ -37,8 +37,13 @@ struct btSimdScalar
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/* workaround for an clang 3.4 issue, friction would fail with forced inlining */
|
||||
#if (defined(__APPLE__) && defined(__clang__) && (__clang_major__ == 5) && (__clang_minor__ == 1)) \
|
||||
|| (defined(__clang__) && (__clang_major__ == 3) && (__clang_minor__ == 4))
|
||||
inline __attribute__ ((noinline)) btSimdScalar(float fl)
|
||||
#else
|
||||
SIMD_FORCE_INLINE btSimdScalar(float fl)
|
||||
#endif
|
||||
:m_vec128 (_mm_set1_ps(fl))
|
||||
{
|
||||
}
|
||||
|
14
extern/bullet2/src/SConscript
vendored
14
extern/bullet2/src/SConscript
vendored
@ -19,8 +19,7 @@ elif env['OURPLATFORM'] in ('linux', 'freebsd4', 'freebsd5'):
|
||||
cflags += ['-O2']
|
||||
elif sys.platform=='darwin':
|
||||
defs += ' NDEBUG'
|
||||
bt_flags = env['CCFLAGS'] + ['-fPIC', '-msse','-msse2', '-msse3', '-mssse3'] # basic -O0 optimization
|
||||
bt_opt_flags = bt_flags + ['-O3']
|
||||
cflags += ['-O3','-fPIC']
|
||||
|
||||
bullet2_src = env.Glob("LinearMath/*.cpp")
|
||||
bullet2_src += env.Glob("BulletCollision/BroadphaseCollision/*.cpp")
|
||||
@ -38,15 +37,4 @@ bullet2_src += env.Glob("BulletSoftBody/*.cpp")
|
||||
|
||||
incs = '. BulletCollision BulletDynamics LinearMath BulletSoftBody'
|
||||
|
||||
if sys.platform=='darwin':
|
||||
if env['C_COMPILER_ID'] == 'clang' and env['CCVERSION'] >= '3.4':
|
||||
# Due some bugs in bullet, clang 3.4 produces wrong code when optimized > -O0
|
||||
# to avoid too much speed penalty when compiling whole bullet lib non-optimized,
|
||||
# we build seperate non-optimized/optimized parts and just link together finally
|
||||
bullet2_src.remove("BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp")
|
||||
bullet2_fix_src = env.Glob("BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp")
|
||||
env.BlenderLib ( libname = 'extern_fix_bullet2', sources=bullet2_fix_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], cc_compileflags=bt_flags, cxx_compileflags=bt_flags )
|
||||
|
||||
env.BlenderLib ( libname = 'extern_bullet2', sources=bullet2_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], cc_compileflags=bt_opt_flags, cxx_compileflags=bt_opt_flags )
|
||||
else:
|
||||
env.BlenderLib ( libname = 'extern_bullet2', sources=bullet2_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], compileflags=cflags )
|
||||
|
Loading…
Reference in New Issue
Block a user