[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47685] trunk/blender: Initial Ceres integration into Blender

Sergey Sharybin sergey.vfx at gmail.com
Sun Jun 10 17:31:03 CEST 2012


Woops,

I meant Keir Mierle for sure! Pardon :)

On Sun, Jun 10, 2012 at 9:27 PM, Sergey Sharybin <sergey.vfx at gmail.com>wrote:

> Revision: 47685
>
> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47685
> Author:   nazgul
> Date:     2012-06-10 15:27:41 +0000 (Sun, 10 Jun 2012)
> Log Message:
> -----------
> Initial Ceres integration into Blender
>
> Currently only put sources of Ceres library into extern/libmv/third_party
> and
> setup CMake and SCons building systems.
>
> Integration details:
>
> - Even CMake build files are not re-used from Ceres's trunk: they're using
> some
>  automatic stuff detection like glog, pthreads, protobuf and so and it's
> not
>  so clear how to re-use that files without modifications.
>  And IMO it's easier if build files are getting re-generated automatically
> to
>  match Blender-specific setup rather than keeping changes made locally in
>  Blender in sync when re-bundling Ceres library. Especially in case when
> it's
>  already needed to support SCons build system.
> - Integrated only actual sources, all tests were stripped. Probably it'll
> be nice
>  to have them, but they'll need clear integration with current module test
> stuff
>  in Blender.
> - Suitesparse was disabled. It'll help a lot having it, but there are some
> difficulties
>  making cholmod working fine on windows. Would be added in future
> - collections_port.cc was also stripped. It's not used by Ceres's upstream
> and
>  it gives compilation error (undefined uint32 -- looks like namespace
> issue).
> - Currently all schur eliminators are included. Not sure if it makes sense,
>  also not sure if it makes sense having them switchable on and off -- IMO
> better
>  to have single configuration which works and does not require special
> tweaks
>  after everything was set up.
>
> To bundle updated version of Ceres:
> - Go to extern/libmv/third_party/ceres folder
> - Run ./bundle.sh
>
> This will checkout fresh Ceres snapshot of Windows branch (which is
> currently
> most interesting from integration into Blender POV), apply all patches
> listed
> in patches/series and copy needed files into Blender's working copy. This
> will
> also re-generate CMake/SCons build rules.
>
> If you'll need extra files from Ceres repository which are not present in
> Blender, you'll need to copy them manually and then run ./mkfiles.sh from
> extern/libmv/third_party/ceres folder which will update list of files used
> by Blender.
>
> Thanks to Leir Mierle and Sameer Agarwal (and all others who helped
> developing
> Ceres) this library and thanks to Keir Mierle with help integrating it
> into Blender!
>
> Modified Paths:
> --------------
>    trunk/blender/extern/libmv/CMakeLists.txt
>    trunk/blender/extern/libmv/SConscript
>    trunk/blender/extern/libmv/bundle.sh
>    trunk/blender/extern/libmv/mkfiles.sh
>    trunk/blender/source/blenderplayer/CMakeLists.txt
>    trunk/blender/source/creator/CMakeLists.txt
>
> Added Paths:
> -----------
>    trunk/blender/extern/libmv/third_party/CMakeLists.txt
>    trunk/blender/extern/libmv/third_party/SConscript
>    trunk/blender/extern/libmv/third_party/ceres/
>    trunk/blender/extern/libmv/third_party/ceres/CMakeLists.txt
>    trunk/blender/extern/libmv/third_party/ceres/ChangeLog
>    trunk/blender/extern/libmv/third_party/ceres/LICENSE
>    trunk/blender/extern/libmv/third_party/ceres/README
>    trunk/blender/extern/libmv/third_party/ceres/SConscript
>    trunk/blender/extern/libmv/third_party/ceres/bundle.sh
>    trunk/blender/extern/libmv/third_party/ceres/files.txt
>    trunk/blender/extern/libmv/third_party/ceres/include/
>    trunk/blender/extern/libmv/third_party/ceres/include/ceres/
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/autodiff_cost_function.h
>    trunk/blender/extern/libmv/third_party/ceres/include/ceres/ceres.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/conditioned_cost_function.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/cost_function.h
>    trunk/blender/extern/libmv/third_party/ceres/include/ceres/internal/
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/internal/autodiff.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/internal/eigen.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/internal/fixed_array.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/internal/macros.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/internal/manual_constructor.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/internal/port.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/internal/scoped_ptr.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/iteration_callback.h
>    trunk/blender/extern/libmv/third_party/ceres/include/ceres/jet.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/local_parameterization.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/loss_function.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/normal_prior.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/numeric_diff_cost_function.h
>    trunk/blender/extern/libmv/third_party/ceres/include/ceres/problem.h
>    trunk/blender/extern/libmv/third_party/ceres/include/ceres/rotation.h
>
>  trunk/blender/extern/libmv/third_party/ceres/include/ceres/sized_cost_function.h
>    trunk/blender/extern/libmv/third_party/ceres/include/ceres/solver.h
>    trunk/blender/extern/libmv/third_party/ceres/include/ceres/types.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_jacobi_preconditioner.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_jacobi_preconditioner.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_jacobian_writer.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_jacobian_writer.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_random_access_matrix.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_random_access_matrix.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_structure.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/block_structure.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/canonical_views_clustering.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/canonical_views_clustering.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/casts.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/cgnr_linear_operator.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/cgnr_solver.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/cgnr_solver.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/collections_port.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/compressed_row_jacobian_writer.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/compressed_row_jacobian_writer.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/conditioned_cost_function.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/corrector.cc
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/corrector.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/dense_jacobian_writer.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/detect_structure.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/detect_structure.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/evaluator.cc
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/evaluator.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/file.cc
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/file.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_2_2.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_2_3.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_2_4.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_2_d.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_3_3.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_3_4.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_3_9.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_3_d.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_4_3.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_4_4.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_2_4_d.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_4_4_2.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_4_4_3.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_4_4_4.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_4_4_d.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/generated/schur_eliminator_d_d_d.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/gradient_checking_cost_function.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/gradient_checking_cost_function.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/graph.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/graph_algorithms.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/integral_types.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/iterative_schur_complement_solver.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/iterative_schur_complement_solver.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/linear_least_squares_problems.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/linear_least_squares_problems.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/linear_operator.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/linear_operator.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/linear_solver.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/linear_solver.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/local_parameterization.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/loss_function.cc
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/map_util.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/matrix_proto.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/minimizer.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/mutex.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/normal_prior.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/parameter_block.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/partitioned_matrix_view.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/partitioned_matrix_view.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/problem.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/problem_impl.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/problem_impl.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/program.cc
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/program.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/program_evaluator.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/random.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/residual_block.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/residual_block.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/runtime_numeric_diff_cost_function.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/runtime_numeric_diff_cost_function.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/schur_eliminator.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/schur_eliminator.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/schur_eliminator_impl.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/schur_ordering.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/schur_ordering.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/scratch_evaluate_preparer.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/scratch_evaluate_preparer.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/solver.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/solver_impl.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/solver_impl.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/sparse_matrix.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/sparse_matrix.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/split.cc
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/stl_util.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/stringprintf.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/stringprintf.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/suitesparse.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/suitesparse.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.h
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/types.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/visibility.cc
>    trunk/blender/extern/libmv/third_party/ceres/internal/ceres/visibility.h
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.cc
>
>  trunk/blender/extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.h
>    trunk/blender/extern/libmv/third_party/ceres/mkfiles.sh
>    trunk/blender/extern/libmv/third_party/ceres/patches/
>    trunk/blender/extern/libmv/third_party/ceres/patches/msvc_isfinite.patch
>    trunk/blender/extern/libmv/third_party/ceres/patches/series
>
> Modified: trunk/blender/extern/libmv/CMakeLists.txt
> ===================================================================
> --- trunk/blender/extern/libmv/CMakeLists.txt   2012-06-10 15:26:50 UTC
> (rev 47684)
> +++ trunk/blender/extern/libmv/CMakeLists.txt   2012-06-10 15:27:41 UTC
> (rev 47685)
> @@ -32,6 +32,7 @@
>        third_party/ssba
>        third_party/ldl/Include
>        ../colamd/Include
> +       third_party/ceres/include
>  )
>
>  set(INC_SYS
> @@ -250,3 +251,5 @@
>  )
>
>  blender_add_lib(extern_libmv "${SRC}" "${INC}" "${INC_SYS}")
> +
> +add_subdirectory(third_party)
>
> Modified: trunk/blender/extern/libmv/SConscript
> ===================================================================
> --- trunk/blender/extern/libmv/SConscript       2012-06-10 15:26:50 UTC
> (rev 47684)
> +++ trunk/blender/extern/libmv/SConscript       2012-06-10 15:27:41 UTC
> (rev 47685)
> @@ -30,7 +30,7 @@
>  src += env.Glob('third_party/ssba/Geometry/*.cpp')
>  src += env.Glob('third_party/ssba/Math/*.cpp')
>
> -incs = '. ../Eigen3'
> +incs = '. ../Eigen3 third_party/ceres/include'
>  incs += ' ' + env['BF_PNG_INC']
>  incs += ' ' + env['BF_ZLIB_INC']
>
> @@ -65,3 +65,5 @@
>  incs += ' ./third_party/ssba ./third_party/ldl/Include ../colamd/Include'
>
>  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 )
> +
> +SConscript(['third_party/SConscript'])
>
> Modified: trunk/blender/extern/libmv/bundle.sh
> ===================================================================
> --- trunk/blender/extern/libmv/bundle.sh        2012-06-10 15:26:50 UTC
> (rev 47684)
> +++ trunk/blender/extern/libmv/bundle.sh        2012-06-10 15:27:41 UTC
> (rev 47685)
> @@ -25,7 +25,9 @@
>  done
>
>  find libmv -type f -not -iwholename '*.svn*' -exec rm -rf {} \;
> -find third_party -type f -not -iwholename '*.svn*' -exec rm -rf {} \;
> +find third_party -type f -not -iwholename '*.svn*' -not -iwholename
> '*third_party/ceres*' \
> +    -not -iwholename '*third_party/SConscript*' -not -iwholename
> '*third_party/CMakeLists.txt*' \
> +    -exec rm -rf {} \;
>
>  cat "files.txt" | while read f; do
>   mkdir -p `dirname $f`
> @@ -39,14 +41,14 @@
>  sources=`find ./libmv -type f -iname '*.cc' -or -iname '*.cpp' -or -iname
> '*.c' | sed -r 's/^\.\//\t/' | sort -d`
>  headers=`find ./libmv -type f -iname '*.h' | sed -r 's/^\.\//\t/' | sort
> -d`
>
> -third_sources=`find ./third_party -type f -iname '*.cc' -or -iname
> '*.cpp' -or -iname '*.c' | grep -v glog | sed -r 's/^\.\//\t/' | sort -d`
> -third_headers=`find ./third_party -type f -iname '*.h' | grep -v glog |
> sed -r 's/^\.\//\t/' | sort -d`
> +third_sources=`find ./third_party -type f -iname '*.cc' -or -iname
> '*.cpp' -or -iname '*.c' | grep -v glog | grep -v ceres | sed -r
> 's/^\.\//\t/' | sort -d`
> +third_headers=`find ./third_party -type f -iname '*.h' | grep -v glog |
> grep -v ceres | sed -r 's/^\.\//\t/' | sort -d`
>
>  third_glog_sources=`find ./third_party -type f -iname '*.cc' -or -iname
> '*.cpp' -or -iname '*.c' | grep glog | grep -v windows | sed -r
> 's/^\.\//\t\t/' | sort -d`
>  third_glog_headers=`find ./third_party -type f -iname '*.h' | grep glog |
> grep -v windows | sed -r 's/^\.\//\t\t/' | sort -d`
>
>  src_dir=`find ./libmv -type f -iname '*.cc' -exec dirname {} \; -or
> -iname '*.cpp' -exec dirname {} \; -or -iname '*.c' -exec dirname {} \; |
> sed -r 's/^\.\//\t/' | sort -d | uniq`
> -src_third_dir=`find ./third_party -type f -iname '*.cc' -exec dirname {}
> \; -or -iname '*.cpp' -exec dirname {} \; -or -iname '*.c' -exec dirname {}
> \; | sed -r 's/^\.\//\t/'  | sort -d | uniq`
> +src_third_dir=`find ./third_party -type f -iname '*.cc' -exec dirname {}
> \; -or -iname '*.cpp' -exec dirname {} \; -or -iname '*.c' -exec dirname {}
> \;  | grep -v ceres | sed -r 's/^\.\//\t/'  | sort -d | uniq`
>  src=""
>  win_src=""
>  for x in $src_dir $src_third_dir; do
> @@ -126,6 +128,7 @@
>        third_party/ssba
>        third_party/ldl/Include
>        ../colamd/Include
> +       third_party/ceres/include
>  )
>
>  set(INC_SYS
> @@ -220,6 +223,8 @@
>  )
>
>  blender_add_lib(extern_libmv "\${SRC}" "\${INC}" "\${INC_SYS}")
> +
> +add_subdirectory(third_party)
>  EOF
>
>  cat > SConscript << EOF
> @@ -246,7 +251,7 @@
>  src = env.Glob("*.cpp")
>  $src
>
> -incs = '. ../Eigen3'
> +incs = '. ../Eigen3 third_party/ceres/include'
>  incs += ' ' + env['BF_PNG_INC']
>  incs += ' ' + env['BF_ZLIB_INC']
>
> @@ -281,4 +286,6 @@
>  incs += ' ./third_party/ssba ./third_party/ldl/Include ../colamd/Include'
>
>  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 )
> +
> +SConscript(['third_party/SConscript'])
>  EOF
>
> Modified: trunk/blender/extern/libmv/mkfiles.sh
> ===================================================================
> --- trunk/blender/extern/libmv/mkfiles.sh       2012-06-10 15:26:50 UTC
> (rev 47684)
> +++ trunk/blender/extern/libmv/mkfiles.sh       2012-06-10 15:27:41 UTC
> (rev 47685)
> @@ -1,4 +1,4 @@
>  #!/bin/sh
>
>  find ./libmv/ -type f | sed -r 's/^\.\///' | sort > files.txt
> -find ./third_party/ -type f | sed -r 's/^\.\///' | sort >> files.txt
> +find ./third_party/ -mindepth 2 -type f | grep -v third_party/ceres | sed
> -r 's/^\.\///' | sort >> files.txt
>
> Added: trunk/blender/extern/libmv/third_party/CMakeLists.txt
> ===================================================================
> --- trunk/blender/extern/libmv/third_party/CMakeLists.txt
>               (rev 0)
> +++ trunk/blender/extern/libmv/third_party/CMakeLists.txt       2012-06-10
> 15:27:41 UTC (rev 47685)
> @@ -0,0 +1,2 @@
> +
> +add_subdirectory(ceres)
>
> Added: trunk/blender/extern/libmv/third_party/SConscript
> ===================================================================
> --- trunk/blender/extern/libmv/third_party/SConscript
>       (rev 0)
> +++ trunk/blender/extern/libmv/third_party/SConscript   2012-06-10
> 15:27:41 UTC (rev 47685)
> @@ -0,0 +1,3 @@
> +#!/usr/bin/python
> +
> +SConscript(['ceres/SConscript'])
>
> Added: trunk/blender/extern/libmv/third_party/ceres/CMakeLists.txt
> ===================================================================
> --- trunk/blender/extern/libmv/third_party/ceres/CMakeLists.txt
>               (rev 0)
> +++ trunk/blender/extern/libmv/third_party/ceres/CMakeLists.txt 2012-06-10
> 15:27:41 UTC (rev 47685)
> @@ -0,0 +1,218 @@
> +# ***** BEGIN GPL LICENSE BLOCK *****
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License
> +# as published by the Free Software Foundation; either version 2
> +# of the License, or (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write to the Free Software Foundation,
> +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
> +#
> +# The Original Code is Copyright (C) 2012, Blender Foundation
> +# All rights reserved.
> +#
> +# Contributor(s): Blender Foundation,
> +#                 Sergey Sharybin
> +#
> +# ***** END GPL LICENSE BLOCK *****
> +
> +# 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
> +
> +set(INC
> +       .
> +       ../../../Eigen3
> +       include
> +       internal
> +       ../gflags
> +)
> +
> +set(INC_SYS
> +)
> +
> +set(SRC
> +       internal/ceres/block_evaluate_preparer.cc
> +       internal/ceres/block_jacobian_writer.cc
> +       internal/ceres/block_jacobi_preconditioner.cc
> +       internal/ceres/block_random_access_dense_matrix.cc
> +       internal/ceres/block_random_access_matrix.cc
> +       internal/ceres/block_random_access_sparse_matrix.cc
> +       internal/ceres/block_sparse_matrix.cc
> +       internal/ceres/block_structure.cc
> +       internal/ceres/canonical_views_clustering.cc
> +       internal/ceres/cgnr_solver.cc
> +       internal/ceres/compressed_row_jacobian_writer.cc
> +       internal/ceres/compressed_row_sparse_matrix.cc
> +       internal/ceres/conditioned_cost_function.cc
> +       internal/ceres/conjugate_gradients_solver.cc
> +       internal/ceres/corrector.cc
> +       internal/ceres/dense_qr_solver.cc
> +       internal/ceres/dense_sparse_matrix.cc
> +       internal/ceres/detect_structure.cc
> +       internal/ceres/evaluator.cc
> +       internal/ceres/file.cc
> +       internal/ceres/generated/schur_eliminator_2_2_2.cc
> +       internal/ceres/generated/schur_eliminator_2_2_3.cc
> +       internal/ceres/generated/schur_eliminator_2_2_4.cc
> +       internal/ceres/generated/schur_eliminator_2_2_d.cc
> +       internal/ceres/generated/schur_eliminator_2_3_3.cc
> +       internal/ceres/generated/schur_eliminator_2_3_4.cc
> +       internal/ceres/generated/schur_eliminator_2_3_9.cc
> +       internal/ceres/generated/schur_eliminator_2_3_d.cc
> +       internal/ceres/generated/schur_eliminator_2_4_3.cc
> +       internal/ceres/generated/schur_eliminator_2_4_4.cc
> +       internal/ceres/generated/schur_eliminator_2_4_d.cc
> +       internal/ceres/generated/schur_eliminator_4_4_2.cc
> +       internal/ceres/generated/schur_eliminator_4_4_3.cc
> +       internal/ceres/generated/schur_eliminator_4_4_4.cc
> +       internal/ceres/generated/schur_eliminator_4_4_d.cc
> +       internal/ceres/generated/schur_eliminator_d_d_d.cc
> +       internal/ceres/gradient_checking_cost_function.cc
> +       internal/ceres/implicit_schur_complement.cc
> +       internal/ceres/iterative_schur_complement_solver.cc
> +       internal/ceres/levenberg_marquardt.cc
> +       internal/ceres/linear_least_squares_problems.cc
> +       internal/ceres/linear_operator.cc
> +       internal/ceres/linear_solver.cc
> +       internal/ceres/local_parameterization.cc
> +       internal/ceres/loss_function.cc
> +       internal/ceres/normal_prior.cc
> +       internal/ceres/partitioned_matrix_view.cc
> +       internal/ceres/problem.cc
> +       internal/ceres/problem_impl.cc
> +       internal/ceres/program.cc
> +       internal/ceres/residual_block.cc
> +       internal/ceres/residual_block_utils.cc
> +       internal/ceres/runtime_numeric_diff_cost_function.cc
> +       internal/ceres/schur_complement_solver.cc
> +       internal/ceres/schur_eliminator.cc
> +       internal/ceres/schur_ordering.cc
> +       internal/ceres/scratch_evaluate_preparer.cc
> +       internal/ceres/solver.cc
> +       internal/ceres/solver_impl.cc
> +       internal/ceres/sparse_matrix.cc
> +       internal/ceres/sparse_normal_cholesky_solver.cc
> +       internal/ceres/split.cc
> +       internal/ceres/stringprintf.cc
> +       internal/ceres/suitesparse.cc
> +       internal/ceres/triplet_sparse_matrix.cc
> +       internal/ceres/types.cc
> +       internal/ceres/visibility_based_preconditioner.cc
> +       internal/ceres/visibility.cc
> +
>
> @@ Diff output truncated at 10240 characters. @@
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>



-- 
With best regards, Sergey Sharybin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/bf-blender-cvs/attachments/20120610/bb4d1b38/attachment.html>


More information about the Bf-blender-cvs mailing list