Restrict -flto=auto in CI to a single Linux job

Because ccache only caches object files and cannot cache linking,
enabling -flto=auto across every Release matrix job forces whole-program
LTO code generation across ~140 test and example binaries on every run
(taking 15-30 minutes even with a 100% warm ccache, and 8-12 minutes
longer on static library builds where libceres.a is re-optimized into
each test executable).

Restrict -flto=auto -Werror=odr to the ubuntu:26.04 shared-library
no-cuda job in linux.yml so ODR and LTO verification still run on every
push without paying the uncacheable LTO link cost across all other Linux,
macOS, Windows MinGW, and Android jobs.

Change-Id: I4e7f6d14b0f327a5c162fa548b3db4f77e59c344
4 files changed
tree: 5f587f5acc3bdcebb9eef493445fb3d6dc488930
  1. .github/
  2. bazel/
  3. cmake/
  4. config/
  5. data/
  6. docs/
  7. examples/
  8. include/
  9. internal/
  10. LICENSES/
  11. scripts/
  12. third_party/
  13. .bazelignore
  14. .clang-format
  15. .gitignore
  16. .gitmodules
  17. .readthedocs.yaml
  18. BUILD
  19. CITATION.cff
  20. CMakeLists.txt
  21. CONTRIBUTING.md
  22. LICENSE
  23. MODULE.bazel
  24. package.xml
  25. README.md
  26. REUSE.toml
  27. WORKSPACE
README.md

Android Linux macOS Windows

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.