Boost is updated to a more recent version to avoid many compilation
warnings. However, boost 1.76 introduces a brand new regex library.
Therefore, it was chosen to use the last version before that to
minimize changes.
The part that adapts our source to the new boost requirements is
backported from 09130d7a62.
The added cmake-parameter is:
-DLYX_EXTERNAL_MYTHES=<value>
where <value> is one of
AUTO (Default) Search first on system for mythes (lib and include)
ON Use installed only (errors if not installed)
OFF Compile the provided source in 3rdparty
Previously, the GNU linker would complain about missing libcharset_relocate.
The MSVC linker did not complain, since the code that uses libcharset_relocate
does not seem to be sued, so it removed it.
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.
The included hunspell should not be used on Linux or OS X, but (depending on
local configuration) it might be needed for crosscompiling a mingw target
from Linux. Now the user can choose whether to use the included hunspell or not.
cmake does already support that.
Now the only other dependency you need to cross-compile for mingw on debian
or ubuntu is qt.
The included iconv should not be used on Linux or OS X, but (depending on
local configuration) it might be needed for crosscompiling a mingw target
from Linux. Now the user can choose whether to use the included iconv or not.
cmake does already support that.
eilseq.m4 was taken from the original libiconv 1.14 package.
The included zlib should not be used on Linux or OS X, but (depending on
local configuration) it might be needed for crosscompiling a mingw target
from Linux. Now the user can choose whether to use the included zlib or not.
cmake does already support that.
zconf.h.in was taken from the original zlib 1.2.8 package. The generation of
zconf.h was made equivalent to the one generated by cmake.
This causes build problems with automake < 1.14 because two files have the same name. This only works well when using subdir-objects, which we only do after 1.14.
We do not want to build libiconv on target which support autotools anyway, but rely on a built-in one.
This fixes building on oldish ubuntu 12.04.