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

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to