New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dropping GCC 4.7 and CMake 2.8.12 support #274

Closed
mosra opened this Issue Aug 27, 2018 · 1 comment

Comments

Projects
1 participant
@mosra
Copy link
Owner

mosra commented Aug 27, 2018

Even the old and venerable Ubuntu 14.04 (that's currently probably used only on Travis CI) has 4.8 as a default, so I think it's time to drop GCC 4.7. Moreover, Travis has 16.04 now, so it's time to drop CMake 2.8.12 as well.

Things to do:

  • check what version of GCC 4.8 has rvalue overloads for this (it was not 4.8.0, probably 4.8.1 ?)
    • check if we can use 4.9 or 5 (no we can't, CentOS is on 4.8.5)
    • make that version as minimal (update docs in all repos)
  • remove CORRADE_GCC47_COMPATIBILITY from everywhere and all related workarounds
  • update Travis configs to use 4.8 instead of 4.7 (i think they now default to some 5.3, newer than the one that's stock in Ubuntu 14.04)
  • verify we can drop CMake 2.8.12 (yes, 14.04 is too old to bother with)
    • check if we can use something newer than 3.0 (no, Debian 8 (Jessie) has 3.0.2) 3.1, 3.0 has a bug
    • make that version as minimal, suggest using prebuilt versions on ancient distros
  • remove CMake 2.8.12-specific workarounds in all repos
  • remove all CMake policies that get activated in 3.0 3.1 from everywhere (CMP0050 and below) (all of them)
  • 3.0 supports message(DEPRECATED), any use for that (except all the deprecated things from 2016 I'm now removing)? nope
  • there is a nasty regression in 3.0 breaking the build because Corrade::PluginManager dependency is not propagated upwards, probably need to bump to 3.1 because of that (and make Debian 8 unsupported) ... or is a workaround possible? maybe reverting https://cmake.org/cmake/help/v3.12/policy/CMP0028.html ? nope
    • 3.1 has 64bit prebuilt binaries, so I can clean up travis.yml
    • 3.1 has the CMP0054 property implicit (last one we actually use)
    • I could jump all the way to 3.5, since the next oldest supported version is 3.5.1 in 16.04 (Jessie backports have 3.6) nope, play it safe
      • 3.3 has CROSSCOMPILING_EMULATOR, could be used to avoid dependency on native Corrade for Emscripten (at least) ... which we could support right away because Emscripten needs 3.7 anyway completely orthogonal to this
      • 3.3 has also COMPILE_LANGUAGE generator expression, which could help with making CORRADE_PEDANTIC_FLAGS work correctly for C sources not important, also could have that version-specific
      • 3.5 has imported targets in FindPNG who cares
      • 3.5 shows deprecation warnings by default i don't have any
  • be happy because another annoyance got removed 🥃 🍻 🎉
  • update bootstrap repos as well

This is postponed to after 2018.08 2018.10 to avoid breaking stuff too early. If anyone still needs 4.7, please let me know.

@mosra mosra self-assigned this Aug 27, 2018

@mosra mosra added this to TODO in Platforms via automation Aug 27, 2018

@mosra mosra added this to the 2018.0d milestone Aug 27, 2018

@mosra mosra moved this from TODO to Important TODO in Platforms Nov 2, 2018

@mosra mosra referenced this issue Nov 2, 2018

Open

C++14, C++17 and forward #52

3 of 4 tasks complete

@mosra mosra moved this from Important TODO to In progress in Platforms Dec 11, 2018

@mosra mosra changed the title Dropping GCC 4.7 support Dropping GCC 4.7 and CMake 2.8.12 support Dec 11, 2018

@mosra

This comment has been minimized.

Copy link
Owner Author

mosra commented Jan 29, 2019

Bootstrap repos updated. Good riddance, old GCC and CMake! 🎉

@mosra mosra closed this Jan 29, 2019

Platforms automation moved this from In progress to Done Jan 29, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment