Adds:
- Makefile: COVERAGE=1 toggle injects --coverage -O0 -g into FLAGS +
LDFLAGS. New \`make coverage\` target does clean + COVERAGE=1
TEST_EXPORTS=1 build + make test + gcovr report.
- gcovr.cfg: filters to src/, excludes libretro-common, src/m68000,
src/bios/jag*.c, test/. Cobertura XML output.
- codecov.yml: per-PR patch threshold 0%, project threshold 1% (noise
absorption), same ignore globs.
- c-cpp.yml: new \"coverage\" job runs make coverage and uploads via
codecov-action@v5. Token optional (public repo); set
CODECOV_TOKEN secret to skip the anonymous-upload rate limit.
continue-on-error: true so coverage runs are advisory.
Codecov requires the GitHub App to be installed on the libretro org
to post the per-PR comment + status -- one-time admin step.
Co-Authored-By: Claude Opus 4.7 <[email protected]>