• Alex Stewart's avatar
    Only use LTO when compiling Ceres itself, not tests or examples. · 89c40005
    Alex Stewart authored
    - If Ceres is built as a shared library, and LTO is enabled for Ceres
      and the tests, then type_info::operator==() incorrectly returns false
      in gtests' CheckedDowncastToActualType() in the following tests:
    -- levenberg_marquardt_strategy_test.
    -- gradient_checking_cost_function_test.
      on at least Xcode 6 & 7 as reported here:
      https://github.com/google/googletest/issues/595.
    - This does not appear to be a gtest issue, but is perhaps an LLVM bug
      or an RTTI shared library issue.  Either way, disabling the use of
      LTO when compiling the test application resolves the issue.
    - Allow LTO to be enabled for GCC, if it is supported.
    - Add CMake function to allow easy appending to target properties s/t
      Ceres library-specific compile flags can be iteratively constructed.
    
    Change-Id: I923e6aae4f7cefa098cf32b2f8fc19389e7918c9
    89c40005