We can do that now that we rely on c++17.
Take this occasion to upgrade boost to version 1.83.
The 3rdparty/boost directory weights now 1MB instead of 2.3MB.
boost/signals2.hpp is a convenience header, it seems that
boost/signals2/signal.hpp is enough for our needs.
This allows to get rid of 6MiB of header files in 3rdparty/boost (and
probably to speed-up compilation).
Remove
1/ the libs/ directory
2/ the CMakeList.txt file, since it only mentions this directory
3/ the cstdint.hpp file in extract.sh, since we do not use this header
file directly (should not make a difference, boost uses it in other
places).
Update boost/Makefile.am accordingly.
1/ remove boost regex code from 3rdparty/boost. Only the cmake stuff remains.
2/ remove traces of BOOST_LIB since there is no need anymore to
compile boost stuff.
3/ remove traces of boost regexp in config/lyxinclude.m4 and INSTALL
4/ require gcc 4.9 as minimal version in autoconf.
Unfortunately, the net gain is only 10% of included boost size (now 21M).
This requires to add a assertion_failed_msg handler. Take this
occasion to cleanup and uniformize the various boost.cpp files that we
have.
This adds 50k line of whatever to the source code.
icu.{hpp,cpp} is not needed and cannot be compiled since it depends on libicu.
The other two files are currently not used, but could be in principle, so I
added them to the build.
Boost.Signals is deprecated. This fixes bug #9943.
The only thing left to do is to rewrite (or get rid of) the boost -mt test
in config/lyxinclude.m4 not to use signals anymore.
It turns out that it did not take off since introduced in 2011. It is better to remove it and the associated boost headers (extract.sh was run against boost 1.60 to do the update).
Since we will move away from several boost classes when transitioning to C++11, it is good to start by removing lesser used ones.
It is easier to use instead getVectorFromString for the use we have of this tokenizer. The two places are environment.cpp (path stuff) and qt_helpers (file fileters). The new code is much shorter.
This allow to remove boost/tokenizer.hpp and friends from our boost tree.