This addresses #3. I'm not planning on developing on the C++ code actively. But I've spent a lot of time getting things like link time optimization working with cmake with OSRM, so I've added my knowledge get to get this working.
Main changes:
Passed -flto to both the compile and link flags (might be better ways to do this, but this works)
Enables llvm-ar and llvm-ranlib which are needed for -flto linking to work.
Combines the sanitizer job to run both address and undefined in one job because why not? (I only recently learned you could pass multiple sanitizers to the -fsanitize option)
Makes the sanitizer job Debug to enable better stack traces if we ever hit bugs
Only installs binutils on linux: it is needed on linux for -flto but not needed on OS X where the default linker supports -flto out of the box.
This addresses #3. I'm not planning on developing on the C++ code actively. But I've spent a lot of time getting things like link time optimization working with cmake with OSRM, so I've added my knowledge get to get this working.
Main changes:
-flto
to both the compile and link flags (might be better ways to do this, but this works)llvm-ar
andllvm-ranlib
which are needed for-flto
linking to work.address
andundefined
in one job because why not? (I only recently learned you could pass multiple sanitizers to the-fsanitize
option)binutils
on linux: it is needed on linux for-flto
but not needed on OS X where the default linker supports-flto
out of the box.