[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38414] branches/soc-2011-tomato/extern/ libmv: Camera tracking integration
Sergey Sharybin
g.ulairi at gmail.com
Fri Jul 15 18:50:13 CEST 2011
Revision: 38414
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38414
Author: nazgul
Date: 2011-07-15 16:50:12 +0000 (Fri, 15 Jul 2011)
Log Message:
-----------
Camera tracking integration
===========================
Fix for camera solver on windows.
There were two problems:
- Static align in Eigen should be also disabled for libmv.
- SSBA doesn't work correct for windows when optimization is
turned on.
There's no other way rather than disable optimization for
the whole extern/libmv. This leads to 3-4x slowdown, but it's
really the only thing we could do now.
Keir is going to drop SSBA out and replace it with Bundler,
so it shouldn't be a major problem.
Modified Paths:
--------------
branches/soc-2011-tomato/extern/libmv/CMakeLists.txt
branches/soc-2011-tomato/extern/libmv/SConscript
branches/soc-2011-tomato/extern/libmv/bundle.sh
Modified: branches/soc-2011-tomato/extern/libmv/CMakeLists.txt
===================================================================
--- branches/soc-2011-tomato/extern/libmv/CMakeLists.txt 2011-07-15 13:32:02 UTC (rev 38413)
+++ branches/soc-2011-tomato/extern/libmv/CMakeLists.txt 2011-07-15 16:50:12 UTC (rev 38414)
@@ -151,6 +151,16 @@
./third_party/glog/src/windows
./third_party/msinttypes
)
+
+ IF(MSVC)
+ set(MSVC_OFLAGS O1 O2 Ox)
+ foreach(FLAG )
+ string(REPLACE "" "Od" CMAKE_CXX_FLAGS_RELEASE "")
+ string(REPLACE "" "Od" CMAKE_C_FLAGS_RELWITHDEBINFO "")
+ endforeach()
+ ENDIF(MSVC)
+
+ add_definitions(-DEIGEN_DONT_ALIGN_STATICALLY)
ELSE(WIN32)
list(APPEND SRC
third_party/glog/src/utilities.cc
Modified: branches/soc-2011-tomato/extern/libmv/SConscript
===================================================================
--- branches/soc-2011-tomato/extern/libmv/SConscript 2011-07-15 13:32:02 UTC (rev 38413)
+++ branches/soc-2011-tomato/extern/libmv/SConscript 2011-07-15 16:50:12 UTC (rev 38414)
@@ -4,9 +4,15 @@
Import('env')
-defs = 'V3DLIB_ENABLE_SUITESPARSE GOOGLE_GLOG_DLL_DECL='
-cflags = []
+defs = []
+cflags_libmv = Split(env['CFLAGS'])
+ccflags_libmv = Split(env['CCFLAGS'])
+cxxflags_libmv = Split(env['CXXFLAGS'])
+
+defs.append('V3DLIB_ENABLE_SUITESPARSE')
+defs.append('GOOGLE_GLOG_DLL_DECL=')
+
src = env.Glob("*.cpp")
src += env.Glob('libmv/image/*.cc')
src += env.Glob('libmv/multiview/*.cc')
@@ -25,10 +31,29 @@
src += ['./third_party/glog/src/logging.cc', './third_party/glog/src/raw_logging.cc', './third_party/glog/src/utilities.cc', './third_party/glog/src/vlog_is_on.cc']
src += ['./third_party/glog/src/windows/port.cc']
+
+ if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
+ cflags_libmv.append('/Od')
+ ccflags_libmv.append('/Od')
+ cxxflags_libmv.append('/Od')
+
+ if not env['BF_DEBUG']:
+ defs.append('NDEBUG')
+ else:
+ if not env['BF_DEBUG']:
+ cflags_libmv = Split(env['REL_CFLAGS'])
+ ccflags_libmv = Split(env['REL_CCFLAGS'])
+ cxxflags_libmv = Split(env['REL_CXXFLAGS'])
+
+ defs.append('EIGEN_DONT_ALIGN_STATICALLY')
else:
src += env.Glob("third_party/glog/src/*.cc")
incs += ' ./third_party/glog/src'
+ if not env['BF_DEBUG']:
+ cflags_libmv = Split(env['REL_CFLAGS'])
+ ccflags_libmv = Split(env['REL_CCFLAGS'])
+ cxxflags_libmv = Split(env['REL_CXXFLAGS'])
incs += ' ./third_party/ssba ./third_party/ldl/Include ../colamd/Include'
-env.BlenderLib ( libname = 'extern_libmv', sources=src, includes=Split(incs), defines=Split(defs), libtype=['extern', 'player'], priority=[20,137], compileflags=cflags )
+env.BlenderLib ( libname = 'extern_libmv', sources=src, includes=Split(incs), defines=defs, libtype=['extern', 'player'], priority=[20,137], compileflags=cflags_libmv, cc_compileflags=ccflags_libmv, cxx_compileflags=cxxflags_libmv )
Modified: branches/soc-2011-tomato/extern/libmv/bundle.sh
===================================================================
--- branches/soc-2011-tomato/extern/libmv/bundle.sh 2011-07-15 13:32:02 UTC (rev 38413)
+++ branches/soc-2011-tomato/extern/libmv/bundle.sh 2011-07-15 16:50:12 UTC (rev 38414)
@@ -163,6 +163,16 @@
./third_party/glog/src/windows
./third_party/msinttypes
)
+
+ IF(MSVC)
+ set(MSVC_OFLAGS O1 O2 Ox)
+ foreach(FLAG ${MSVC_OFLAGS})
+ string(REPLACE "${FLAG}" "Od" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+ string(REPLACE "${FLAG}" "Od" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
+ endforeach()
+ ENDIF(MSVC)
+
+ add_definitions(-DEIGEN_DONT_ALIGN_STATICALLY)
ELSE(WIN32)
list(APPEND SRC
${third_glog_sources}
@@ -187,9 +197,15 @@
Import('env')
-defs = 'V3DLIB_ENABLE_SUITESPARSE GOOGLE_GLOG_DLL_DECL='
-cflags = []
+defs = []
+cflags_libmv = Split(env['CFLAGS'])
+ccflags_libmv = Split(env['CCFLAGS'])
+cxxflags_libmv = Split(env['CXXFLAGS'])
+
+defs.append('V3DLIB_ENABLE_SUITESPARSE')
+defs.append('GOOGLE_GLOG_DLL_DECL=')
+
src = env.Glob("*.cpp")
$src
@@ -200,11 +216,30 @@
${win_src}
src += ['./third_party/glog/src/logging.cc', './third_party/glog/src/raw_logging.cc', './third_party/glog/src/utilities.cc', './third_party/glog/src/vlog_is_on.cc']
src += ['./third_party/glog/src/windows/port.cc']
+
+ if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
+ cflags_libmv.append('/Od')
+ ccflags_libmv.append('/Od')
+ cxxflags_libmv.append('/Od')
+
+ if not env['BF_DEBUG']:
+ defs.append('NDEBUG')
+ else:
+ if not env['BF_DEBUG']:
+ cflags_libmv = Split(env['REL_CFLAGS'])
+ ccflags_libmv = Split(env['REL_CCFLAGS'])
+ cxxflags_libmv = Split(env['REL_CXXFLAGS'])
+
+ defs.append('EIGEN_DONT_ALIGN_STATICALLY')
else:
src += env.Glob("third_party/glog/src/*.cc")
incs += ' ./third_party/glog/src'
+ if not env['BF_DEBUG']:
+ cflags_libmv = Split(env['REL_CFLAGS'])
+ ccflags_libmv = Split(env['REL_CCFLAGS'])
+ cxxflags_libmv = Split(env['REL_CXXFLAGS'])
incs += ' ./third_party/ssba ./third_party/ldl/Include ../colamd/Include'
-env.BlenderLib ( libname = 'extern_libmv', sources=src, includes=Split(incs), defines=Split(defs), libtype=['extern', 'player'], priority=[20,137], compileflags=cflags )
+env.BlenderLib ( libname = 'extern_libmv', sources=src, includes=Split(incs), defines=defs, libtype=['extern', 'player'], priority=[20,137], compileflags=cflags_libmv, cc_compileflags=ccflags_libmv, cxx_compileflags=cxxflags_libmv )
EOF
More information about the Bf-blender-cvs
mailing list