Documentation update. 1. Update iOS build instructions. 2. Update version history. Change-Id: I49d62e86ecff39190b50c050cb12eef4e2773357
diff --git a/docs/source/building.rst b/docs/source/building.rst index 5b6846e..14614d2 100644 --- a/docs/source/building.rst +++ b/docs/source/building.rst
@@ -324,10 +324,45 @@ Building on Android =================== - Download the ``Android NDK``. Run ``ndk-build`` from inside the ``jni`` directory. Use the ``libceres.a`` that gets created. +.. _section-ios + +Building on iOS +=============== +.. NOTE:: + + You need iOS version 6.0 or higher to build Ceres Solver. + +To build Ceres for iOS, we need to force `CMake` to find the +toolchains from the iOS SDK instead of using the standard ones. +The following incanation does the needful: + +.. code-block:: bash + + cmake ../ceres-solver \ + -DCMAKE_TOOLCHAIN_FILE=../ceres-solver/cmake/iOS.cmake \ + -DEIGEN_INCLUDE_DIR=/path/to/eigen/header \ + -DIOS_PLATFORM=<PLATFORM> + +`PLATFORM` can be one of `OS`, `SIMULATOR` and `SIMULATOR64`. You can +build for `OS` (`armv7`, `armv7s`, `arm64`), `SIMULATOR` (`i386`) or +`SIMULATOR64` (`x86_64`) separately and use `LIPO` to merge them into +one static library. See `cmake/iOS.cmake` for more options. + +After building, you will get `libceres.a` and `libminiglog.a` +You need to add these two libraries into your xcode project. + +The default cmake configuration builds a bare bones version of Ceres +Solver that only depends on Eigen and MINIGLOG, this should be +sufficient for solving small to moderate sized problems (No +`SPARSE_SCHUR`, `SPARSE_NORMAL_CHOLESKY` linear solvers and no +`CLUSTER_JACOBI` and `CLUSTER_TRIDIAGONAL` preconditioners). + +If you decide to use `LAPACK` and `BLAS`, then you also need to add +`Accelerate.framework` to your xcode project's linking dependency. + .. _section-customizing: Customizing the build
diff --git a/docs/source/version_history.rst b/docs/source/version_history.rst index 39f2c95..953a9d6 100644 --- a/docs/source/version_history.rst +++ b/docs/source/version_history.rst
@@ -10,14 +10,17 @@ New Features ------------ -#. Support for bounds constrained optimization problems when using the - trust region minimizer. -#. Problems in which the sparsity structure of the Jacobian changes - over the course of the optimization can now be solved much more - efficiently. (Richard Stebbing) +#. Bounds constraints: Support for upper and/or lower bounds on + parameters when using the trust region minimizer. +#. Dynamic Sparsity: Problems in which the sparsity structure of the + Jacobian changes over the course of the optimization can now be + solved much more efficiently. (Richard Stebbing) #. Improved support for Microsoft Visual C++ including the ability to build and ship DLLs. (Björn Piltz, Alex Stewart and Sergey Sharybin) +#. Support for building on iOS 6.0 or higher (Jack Feng). +#. Autogeneration of config.h that captures all the defines used to + build and use Ceres Solver. #. Simpler and more informative solver termination type reporting. (See below for more details) #. New `website <http://www.ceres-solver.org>`_ based entirely on @@ -30,18 +33,13 @@ they can be up to 2G in size. #. Faster ``SPARSE_NORMAL_CHOLESKY`` solver when using ``CX_SPARSE`` as the sparse linear algebra library. -#. ``Problem::IsParameterBlockPresent`` can be used to check if a - parameter block is already present in the problem. -#. ``Problem::GetParameterization`` can be used to access the - parameterization associated with a parameter block. -#. Added the (2,4,9) and (2,4,8) template specialization for - PartitionedMatrixView and SchurEliminator. +#. Added ``Problem::IsParameterBlockPresent`` and + ``Problem::GetParameterization``. +#. Added the (2,4,9) and (2,4,8) template specializations. #. An example demonstrating the use of DynamicAutoDiffCostFunction. (Joydeep Biswas) -#. An example demonstrating the use of dynamic sparsity (Richard - Stebbing) -#. An example from Blender demonstrating the use of a custom - ``IterationCallback``. (Sergey Sharybin) +#. Homography estimation example from Blender demonstrating the use of + a custom ``IterationCallback``. (Sergey Sharybin) Backward Incompatible API Changes @@ -92,7 +90,10 @@ Bug Fixes --------- -#. Fixed errant verbose levels (Bjorn Piltz) +#. Do not propagate 3d party libs through + `IMPORTED_LINK_INTERFACE_LIBRARIES_[DEBUG/RELEASE]` mechanism when + building shared libraries. (Björn Piltz) +#. Fixed errant verbose levels (Björn Piltz) #. Variety of code cleanups, optimizations and bug fixes to the line search minimizer code (Alex Stewart) #. Fixed ``BlockSparseMatrix::Transpose`` when the matrix has row and @@ -130,7 +131,7 @@ ``Solver::Options::inner_iteration_ordering``. As a consequence the ``NDK`` build now depends on ``libc++`` from the ``LLVM`` project. #. Variety of lint cleanups (William Rucklidge & Jim Roseborough) -#. Various internal cleanups. +#. Various internal cleanups including dead code removal. 1.8.0