ThKattanek / emu64

C64 Emulator
https://www.thorsten-kattanek.de/index.php/projekte/emu64
GNU General Public License v2.0
38 stars 6 forks source link

Add a CI build and fix issues to make it succeed #241

Closed Zirias closed 1 year ago

Zirias commented 1 year ago

This changes the required language version from C++11 to C++17. The code already needed C++14 (for binary literals), and C++17 adds a nice way to portably do an explicit fall-through.

Warnings about global shadowing are not enabled because the code base is full of constructors taking parameters by the same name as class instance variables.

Zirias commented 1 year ago

Klingt gut! Sobald du den mergest wäre dann der CI build aktiv, das heißt statische Checks (was eben GCC so hergibt) vollautomatisch für jeden Commit auf master und jeden pull request ;)

ThKattanek commented 1 year ago

Ein Problem gibt es allerdings jetzt mit MXE. Aber erst mal nicht so wild, da ich das Compilieren notfalls mit angepasster src.pro durchführen kann (++17 wieder auf +11) . Selbst bei ++12 kommen Fehler. Aber ich denke bis zur nächsten Version haben wir das auch gefixt.

Ansich immer der selbe Fehler. Ich Merge das aber trotzdem, da ich notfalls weiß was kurz geändert werden muss. Nur komisch das er [[fallthrough]] schluckt obwohl das ja erst an ++17 dabei ist wenn ich das richtig gelesen habe.

grafik

Zirias commented 1 year ago

Der Screenshot sieht tatsächlich eher nach einem Bug in MXE aus. Vermutung: Die definieren ihr eigenes byte und C++14 führt da auch was ein, dann beißt sich das ...

Dass Konstrukte "geschluckt" werden obwohl es die erst in neueren Standards gibt ist normal ... Compiler, die das kennen, akzeptieren es auch, spucken aber eine Warnung aus wenn es nicht zum gewählten Standard passt.

Edit: Du hattest ja schon die "binary literals" (0b101010) drin, die gibt es erst in C++14 und trotzdem hat es auch mit C++11 gebaut ... aber es kam halt ne Warnung ;-)

ThKattanek commented 1 year ago

Dachte ich mir auch. Aber momentan bekomme ich die Windows Version ja noch gebacken. Das muss ich mir mal genauer ansehen mit einer kleinen Test Anwendung.