Since the platform is selected at run time (e.g. xcb vs. Wayland), it
is not a good idea to decide at compile time what code is run. Another
example is on macOS, where having xcb libraries available will lead to
lauching the Xquartz whenever LyX is running.
With this patch, things are separated:
- the code is run when run-time platform is "xcb".
- the support code is compiled in when xcb header and libraries are
available.
The cmake code is courtesy of Kornel Benko.
Fixes ticket #13086.
(cherry picked from commit 18c310a8cf)
(cherry picked from commit f1fddd86ef)
(cherry picked from commit 3bc4554e57)
(cherry picked from commit 8c14748e78)
This makes things much simpler.
But at least with the latest macos tools (Sonoma and XCode15) a bundle
refuses to run if it 's not signed properly.
Both issues are solved with the patch included and have now been tested
with Qt5.15 and Qt6.7.
For completeness: I've checked the font-emph shortcut issue and, as
reported in the ticket mentioned, ^CmdE works with Qt5.15 but not with
Qt6.7. However the sequence ^C E does work. I don't know whether this is
intended as a workaround for this issue or was already implemented.
(Thanks Scott for the patch and comment)
For the HAVE_HUNSPELL_CXXABI check, only test a (real) link command
if an external libhunspell is used or if macOS is used (see
350a9daf). If the bundled libhunspell is used, it has not been built
yet at the point of the initial cmake command.
This commit fixes an issue when the bundled Hunspell is desired.
Before, the test command would still attempt to link to the system
hunspell library. Even if the system library is available, there
could be problems if there is a mismatch of the CXX ABI. And
finally, even if the system library is available and there is no
mismatch, compiling the test file with Clang and -stdlib=libc++
seems to cause a failure when linking with the system Hunspell
library.
1.) If building with external iconv, remove remnants of libiconv data
created if previousy used internal iconv
2.) Remove the variable HELP from cache to enable subsequent builds.
(Different variable-handling on new cmake (version >= 3.18))
3.) New macro to extract cmake-known-cxx-sts features
4.) Check for CXX11-features only for a subset of possibilities
known by the used cmake
Previously there are po-entries like
#: lib/examples/Articles:0 src/TocBackend.cpp:296
#:src/frontends/qt/GuiExternal.cpp:87
msgid "External Material"
msgstr ""
now:
#: src/TocBackend.cpp:296 src/frontends/qt/GuiExternal.cpp:87
#: lib/examples/Articles:0
msgid "External Material"
msgstr ""
(The string at 'lib/examples/Articles:0' proceeds also from the directory name 'lib/examples/External_Material')
This makes it easier to use some po-editors like 'linguist'
1.) Math-editor seems to use system fonts, so install it there.
2.) We use fonts from the support-dir, so install them there too.
This is something automake may take int account too.