Add initial Bazel build, including tests.

This allows building and running the Ceres tests, without
needing any external dependencies; they are downloaded and
compiled automatically thanks to the magic of Bazel.

It also opens the door for other projects that use Ceres
easily thanks to Bazel's external dependency support.

Remaining work:
- Skylark macros to allow different Ceres configurations
- Checking to make sure external projects can use this
- Parallelizing bundle_adjustment_test execution

Sample output:

  INFO: Analysed target //:ceres (6 packages loaded).
  INFO: Found 1 target...
  Target //:ceres up-to-date:
    bazel-bin/libceres.a
    bazel-bin/libceres.so
  INFO: Elapsed time: 103.756s, Critical Path: 13.97s
  INFO: Build completed successfully, 131 total actions

Change-Id: I400d3ce43f35b7e7a770da346337e3ffdb500dc2
2 files changed
tree: 0d73dbf26faaf3c4faa82bee71f61c8b5d286e6d
  1. cmake/
  2. config/
  3. data/
  4. docs/
  5. examples/
  6. include/
  7. internal/
  8. jni/
  9. scripts/
  10. .gitignore
  11. BUILD
  12. CMakeLists.txt
  13. LICENSE
  14. package.xml
  15. README.md
  16. WORKSPACE
README.md

Ceres Solver

Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.

  1. Non-linear Least Squares problems with bounds constraints.
  2. General unconstrained optimization problems.

Please see ceres-solver.org for more information.

WARNING - Do not make GitHub pull requests!

Ceres development happens on Gerrit, including both repository hosting and code reviews. The GitHub Repository is a continuously updated mirror which is primarily meant for issue tracking. Please see our Contributing to Ceres Guide for more details.

The upstream Gerrit repository is

https://ceres-solver.googlesource.com/ceres-solver