Move everything that might collect metrics to the metrics/ directory,
the only test manifests inside the render-test/ directory are the
unit tests of the probes.
Previously we had UndefinedBehavior mixed with other sanitizers, in
special implicit conversions and overflows.
Also, run the sanitizers in Release configuration, so they will run
faster. -O1 is just needed for perfectly nice stack traces.
Also, moving the flags to an interface will prevent them to leak
to our external dependencies.
- Try as much as possible not to use explicit compiler flags,
relying on CMake to do the job in a portable away.
- Build mbgl-core as a single static library and leverage lto as
much as possible.
- Support a MinSizRel build for other platforms.
- Make GLFW and Node a client of mbgl-core public interface.
- Same for the offline tool and static render tool.
- Use only target settings (do not pollute the global scope)
- Confine core code in a single file.
- Confine platform code inside a single include (exception being Qt
that needs AUTOMOC before adding the targets)
- Align the Android build with the Android toolchain file.