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
[Core] Drop build-system support for Qt4 and Python 2 #4575
Conversation
Also increase minimum CMake, GCC, and Clang versions to match Ubuntu 18.04 LTS. This sets our minimum supported version of the C++ standard to C++17.
As mentioned in the forum thread using C++17 leads to a build failure due to some boost stuff: |
Btw with 19d8c75 I have disabled the builds for Qt4 and Py2 which now fail anyway |
Thanks for that. I missed a change to SetupPython that I'll commit shortly. It appears that Boost::Bind does not like the function signatures of:
The |
OK but why doesn't it cause a problem with boost 1.67 and MSVC? Is it then compiler specific or a limitation of boost? |
I am not entirely sure, but |
b46fbb5
to
148f32b
Compare
148f32b
to
a2ff7f4
Compare
This works for me except for the build target "ReverseEngineering" For this build target I have to use C++14. (ReverseEngineeringGui is not affected) |
Thanks for testing. I have a patch for ReverseEngineering, it uses a library that has some deprecated stuff from before C++11 in the Windows LibPack. I started a discussion about it here: https://forum.freecadweb.org/viewtopic.php?f=10&t=56328 |
BTW, do we need to change anything in https://github.com/FreeCAD/FreeCAD/blob/master/requirements.txt ? |
Wow, good catch! Using std::bind fixes the build failure. The reason for using boost::bind simply is that we already used it 15 years ago for boost's signal/slot mechanism and it's used by habit in new code. Since std::bind has been added with C++11 boost::bind was the only option at that time. |
In 3779aad I have replaced the boost::bind with std::bind |
05bba05
to
06d64ba
Compare
PCL was already defaulted to OFF on Linux, this changes the default to OFF on MSVC as well. This can be reverted once the primary LibPack for Windows includes a version of FLANN that compiles under C++17 (the last official release of FLANN, 1.9.1, does not, but the HEAD in their Git repository does).
OK, this PR should be ready (0.20 only, obviously). I didn't squash it because I'm afraid of screwing it up with all those merges from master, but obviously it probably should be: there is a change and reversion to DocumentObserver (@wwmayer fixed the issue on the trunk by switching to |
As discussed on the FreeCAD forums, this PR updates our CMake build system to require the following software versions (corresponding to Ubuntu 18.04 LTS):
It also sets the C++ standard to C++17 --
this PR is set as a Draft pending figuring out the problem with that standard version and Boost::Bind on one of the Travis builds.Note that many of the changes in the diffs are indentation-only, since the Qt5 conditional was removed in several places. I left the
BUILD_QT5
variable in place, but it defaults to ON and is ignored by the main build system (some Mods still refer to it -- those will be dealt with in later PRs).