TerryCavanagh / VVVVVV

The source code to VVVVVV! http://thelettervsixtim.es/
Other
6.94k stars 556 forks source link

CMake: Scope C99/C++98 flags to VVVVVV only #1184

Closed InfoTeddy closed 2 months ago

InfoTeddy commented 2 months ago

Due to a confluence of weird factors, it turns out that PhysFS is compiling with implicit function definitions due to function definitions that get hidden with -std=c99, but not with -std=gnu99 (or the default GCC value of -std=gnu17).

Also, due to a recent GCC update (GCC 14), implicit function declarations are actually prohibited with -std=c99 as the C99 standard proscribes.

This meant that people started getting build errors in PhysFS code on default settings, which wasn't ideal.

To fix this, we will make our -std= flags apply only to VVVVVV source files. In CMake 2.8.12, this can be done with set_source_files_properties. Additionally the flags to disable exceptions and RTTI are scoped down too.

Thanks to leo60228 for helping debug and solve this issue.

Fixes #1167.

Legal Stuff:

By submitting this pull request, I confirm that...