Commit Graph

51 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
d7e2ca377f Get rid of QPA_XCB define
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)
2024-08-31 15:07:29 +02:00
Enrico Forestieri
94004da71f Avoid bogus warnings when configuring for Qt6
Recent versions of qmake complain loudly when the locale
does not explicitly specify the utf8 codeset. Specifically,
the configure script exports LC_ALL=C and that implies the
ascii codeset. Previously, this was silently changed to utf8,
whereas now we get a warning for each qmake invocation.
So, explicitly set utf8 before calling qmake.
2024-07-03 21:02:51 +02:00
Enrico Forestieri
76670a6ab9 Fix detection of private Qt6 headers
The gui-private is a separate module. Private Qt6 GUI headers
are currently used only with the Windows backend. However they
are needed to port to Qt6 all functionality that was depending
on the -extras modules. For example, all code guarded by the
macro HAVE_QT5_X11_EXTRAS has to be audited and properly replaced
by Qt6 code. See for example 771f30e9 and 17b24cf4.
2023-08-28 11:03:23 +02:00
Enrico Forestieri
c088cc4413 Fix detection of xcb during configure
The QT_FEATURE_xcb macro is not in the private headers anymore.
They keep changing APIs...
2023-08-28 10:52:08 +02:00
Enrico Forestieri
99f972e2c4 Give error if a required Qt6 module is missing
Configure would not stop in such cases and a subsequent make would fail.
2023-07-15 15:28:17 +02:00
Jean-Marc Lasgouttes
c90ea03884 Remove traces of QtCore5Compat in autoconf script
Other instances remain in :
CMakeList.txt
INSTALL.Win32
development/LyX-Mac-binary-release.sh
development/Win32/packaging/installer/src/main.nsh
src/CMakeLists.txt
src/client/CMakeLists.txt
src/support/tests/CMakeLists.txt
src/tests/CMakeLists.txt
src/tex2lyx/CMakeLists.txt
2023-03-03 17:23:13 +01:00
Jean-Marc Lasgouttes
4143dc9202 Autoconf: warn when using stdlib-debug with Qt6 2022-12-05 19:47:00 +01:00
Jean-Marc Lasgouttes
9bb61a28f8 remove forgotten traces of Qt4 in configure script 2022-11-21 09:51:12 +01:00
Jean-Marc Lasgouttes
4310430a38 autoconf: remove support for compiling against Qt4
Most of the changes consist in assuming that USE_QT5=yes.

Update INSTALL and README accordingly.
2022-11-19 19:41:49 +01:00
Enrico Forestieri
d7662e5586 Force absolute paths with qmake
When generating makefiles, by default qmake tries to use
relative paths if it can replace at most 4 subdirs with "../"
to reach the QTDIR from the project file location.
This maximum can be changed by defining QMAKE_PROJECT_DEPTH, and
setting it to zero forces qmake to always use absolute paths.

This is necessary because the paths for includes and libs are
generated by a temporary project file located in a temporary dir
not corresponding to the real source dir.
2022-05-29 11:57:58 +02:00
Jean-Marc Lasgouttes
e4416535e4 Fix configure with autoconf 2.71
This fixes two issues with autoconf 2.71

* a new version of eilseq.m4 from libiconv is required ;

* the AC_CHECK_HEADER last `-' argument is obsloleted, but I do not
  think that we needed it in the first place.
2022-04-28 14:36:11 +02:00
Stephan Witt
cb4715d739 Improved Qt framework configuration detection on macOS, add QtCore5Compat headers to configure based includes 2021-12-12 22:24:23 +01:00
Stephan Witt
aabe9e8b11 Improved Qt framework configuration detection on macOS, add support for Qt6 2021-10-24 21:41:11 +02:00
Enrico Forestieri
abad843bd0 Amend 771f30e9 2021-10-17 15:54:28 +02:00
Enrico Forestieri
771f30e946 Enable QWindowsMimeMetafile with Qt6
The QWinMime class has been removed in Qt6 but the functionality
is still present. However, one has to allow inclusion of private
headers and register the mime handling to the QWindowsApplication
native interface.
2021-10-17 15:06:05 +02:00
Enrico Forestieri
4d71d3d8a7 Improve detection of Qt6 libs
We would miss the libraries specified by a full path when
also '-L' flags are present, as we would only take into
account those specified by '-l' flags.
2021-10-16 19:09:30 +02:00
Enrico Forestieri
47f1fec96c Fix build with Qt6
In Qt6 the Svg includes are split into two different subdirs,
namely QtSvg and QtSvgWidgets. So, after 0862042b, it is necessary
to also account for the last one. Nothing needs to be done for Qt5.
2021-10-12 20:23:27 +02:00
Stephan Witt
c93c94fd22 Correct moc compiler version extractor regex for patch level greater 9. 2021-07-16 18:12:33 +02:00
Enrico Forestieri
f60b23cbc1 Fix configure with Qt 6.1
Since Qt 6.1 the moc, rcc, and uic compilers are not installed
in the bin dir anymore. We ask qmake for their location and
record them with full path so that it is not necessary thinkering
with the PATH variable.
2021-06-15 11:40:27 +02:00
Enrico Forestieri
779f0a74f0 Tweak Qt6 detection
Don't try in turn every possible qmake candidate but directly
use the correct one.
2021-03-27 11:23:52 +01:00
Enrico Forestieri
4b20ae9d59 Improve Qt6 detection
There is still no clear pattern of how distributions will install Qt6.
The old scheme of adding a -qtN suffix is not followed by OpenSuse,
and qmake and the ancillary programs are installed with 6 as a suffix.
2021-03-21 11:28:11 +01:00
Enrico Forestieri
635a7d77dd Allow compiling with Qt6
This commit allows compiling LyX with Qt6 when using autotools.
For a successful compilation the following 2 conditions must be met.

1) The Qt6 qmake has to come first in PATH, so that the command
   "qmake -v | grep -o 'Qt version .'" returns "Qt version 6".
2) The --enable-qt6 switch has to be passed to the configure command.

If --enable-qt6 is used but Qt6 is not found, Qt5 is tried as a fallback.
If also Qt5 is not found, configuring for Qt4 is attempted.
If --enable-qt6 is not used, then things go as usual. This means that Qt5
is tried first and then Qt4, unless --disable-qt5 is used, in which case
Qt4 is directly attempted. This means that existing scripts should
continue working unmodified.

LyX should compile with Qt6 on windows and linux, and possibly also on
mac, but I could not test that. However, it is not guaranteed that it
works as it should. In particular I am not sure that I got right the
conversion from QRegExp to QRegularExpression. For sure, the syntax
highlighting seems to not work right. Someone in the know should take
a look at that. I am able to load documents and compile them but some
thourough testing is needed. However, when compiling for Qt5 or Qt4,
I tried to make sure that the functionality is preserved.
2021-03-15 17:09:09 +01:00
Juergen Spitzmueller
76eb01718d Re-add file that got lost in the qt4 > qt rename 2019-07-21 12:36:05 +02:00
Jean-Marc Lasgouttes
5971c1a9f1 * config/qt.m4: remove (unused)
* config/lyxinclude25x.m4: remove (move contents to lyxinclude.m4)

	* autogen.sh:
	* config/Makefile.am: adapt.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17980 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-25 10:40:50 +00:00
André Pönitz
a63cddf51c remove qt3 frontend
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15432 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-21 08:35:47 +00:00
Lars Gullik Bjønnes
110a4f1117 split the qt.m4 in two, separate file for qt4
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14491 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-22 11:23:41 +00:00
Lars Gullik Bjønnes
d2b2aa8124 Make signals and slots to not be defined, and replace them with Q_SIGNALS and Q_SLOTS
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14277 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-30 14:37:33 +00:00
Lars Gullik Bjønnes
96a7b5d0af Do not use the qt "keyword" emit. Make qt not emit it at all. (pun intended)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14269 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-30 11:57:17 +00:00
Jean-Marc Lasgouttes
64b8bcd2ff * config/qt.m4 (QT_DO_IT_ALL): add test for Qt-without-X11-under-cygwin.
* config/Makefile.am:
	* config/cygwin.m4: remove special cygwin tests

	* configure.ac: check for shlwapi and gdi32 libraries (needed in
	windows); do not check special cygwin features.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13841 a592a061-630c-0410-9148-cb99ea01b6c8
2006-05-12 15:26:05 +00:00
Edwin Leuven
f92abd5576 replaced last convenience class in iconpallete
browsebox is not build anymore and commented out in bulletsmodule

bullets are disabled in documentdialog: wasn't working before either

remove qt3support!



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13809 a592a061-630c-0410-9148-cb99ea01b6c8
2006-05-08 11:44:37 +00:00
Georg Baum
3626d1ce04 Remove qt2 support in the following files:
* src/frontends/qt2/qt_helpers.C
	(makeFontName):

	* src/frontends/qt2/QWorkArea.C
	(QWorkArea::haveSelection):
	(QWorkArea::haveSelection):
	(QWorkArea::getClipboard):

	* src/frontends/qt2/panelstack.C
	(PanelStack::PanelStack):

	* src/frontends/qt4/qt_helpers.C
	(makeFontName):

	* README: remove notice about qt2

	* config/qt.m4: make 3.0 the minimum required qt version


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13414 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-17 19:02:43 +00:00
Georg Baum
128987a737 remove unused QtXml library
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13338 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-10 21:10:07 +00:00
Georg Baum
0605e01f44 search also for libQtCore4 etc, not only libQtCore etc.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13304 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-06 17:41:49 +00:00
Georg Baum
9a1d905662 add missing include directory for qt 4
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13303 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-06 14:37:03 +00:00
Lars Gullik Bjønnes
0c21c114d4 setup the buildsystem for building qt4
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13295 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-05 17:29:08 +00:00
Jean-Marc Lasgouttes
f1b11ec96f avoid uic core dump
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10686 a592a061-630c-0410-9148-cb99ea01b6c8
2005-12-28 15:59:22 +00:00
Jean-Marc Lasgouttes
8f00970bf4 compile the Qt frontend without STL compatibility stuff
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10303 a592a061-630c-0410-9148-cb99ea01b6c8
2005-07-17 23:40:08 +00:00
Angus Leeming
5ae47a84eb Squash the Qt "Mutex destroy failure" warning.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10170 a592a061-630c-0410-9148-cb99ea01b6c8
2005-07-12 11:33:56 +00:00
Jean-Marc Lasgouttes
5bacc054f5 QTDIR is precious
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10169 a592a061-630c-0410-9148-cb99ea01b6c8
2005-07-12 11:01:45 +00:00
Angus Leeming
f8ca518f31 Move the setting of the Qt preprocessor flags out of the Makefiles and into qt.m4
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9855 a592a061-630c-0410-9148-cb99ea01b6c8
2005-04-22 10:59:17 +00:00
Angus Leeming
8b7ea654e4 Michael Schmitt's -lqt-mt3 patch.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9648 a592a061-630c-0410-9148-cb99ea01b6c8
2005-02-18 17:25:06 +00:00
Lars Gullik Bjønnes
2c0668646a update m4 files and remove warnings
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8774 a592a061-630c-0410-9148-cb99ea01b6c8
2004-05-25 14:42:10 +00:00
Jean-Marc Lasgouttes
672f874f40 openbsd fixes
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8470 a592a061-630c-0410-9148-cb99ea01b6c8
2004-03-01 15:18:28 +00:00
Lars Gullik Bjønnes
30d32ead10 qt errors are not fatal
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6965 a592a061-630c-0410-9148-cb99ea01b6c8
2003-05-14 14:08:22 +00:00
John Levon
873166d5e6 Prefer -lqt-mt. Apparently it can affect whether Qt sees KDE styles etc.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6199 a592a061-630c-0410-9148-cb99ea01b6c8
2003-02-18 14:22:30 +00:00
John Levon
0b7bc9ebfa Qt config fix reported by Mike Meredith
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5882 a592a061-630c-0410-9148-cb99ea01b6c8
2002-12-19 23:41:18 +00:00
John Levon
99bf5f0e00 small sed tweak
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5296 a592a061-630c-0410-9148-cb99ea01b6c8
2002-09-13 01:47:29 +00:00
John Levon
6c5e002ef2 output Qt version
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5293 a592a061-630c-0410-9148-cb99ea01b6c8
2002-09-12 17:10:04 +00:00
John Levon
c2faf7df76 make fatal actually be fatal. Whoops.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5290 a592a061-630c-0410-9148-cb99ea01b6c8
2002-09-12 15:32:18 +00:00
John Levon
0a64828a27 make fatal again
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5289 a592a061-630c-0410-9148-cb99ea01b6c8
2002-09-12 15:26:36 +00:00