[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