Commit Graph

409 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
2b0841b0c9 Move LYX_(BEGIN|END)_MUTE_GCC_WARNING macros to their own header.
It was not nice to other build systems to define that in configure.ac.
2023-11-10 13:14:34 +01:00
Jean-Marc Lasgouttes
c2653e451c Avoid dangling-reference warning in several places
This new warning in gcc 13 is annoying because it happens in certain
parts of our code where it is harmless to pass a temporary variable to
a function that returns a reference.

This patch introduces a new pair of macros,
LYX_BEGIN_MUTE_GCC_WARNING(warn) and LYX_END_MUTE_GCC_WARNING, which
can be used to define a block of code where a given GCC warning is disabled.

The macros are no-ops with compilers other than gcc, although some
compilers that pretend to be GCC make be mis-detected. The worse that
can happen AFAIU is a bunch of warnings.

The macro relies on an intimidating set of for nested macros. The goal
of these macros is to build a nested string bit by bit. Here is how it
works:

PRAGMA_IGNORE(dangling-reference)
  => PRAGMA_IGNORE_1(-Wdangling-reference)
  => PRAGMA_IGNORE_2("-Wdangling-reference")
  => PRAGMA_IGNORE_3(GCC diagnostic ignored "-Wdangling-reference")
  => _Pragma("GCC diagnostic ignored \""-Wdangling-reference\"")

The next question is: what is _Pragma() good for? Well, it is a
version of #pragma that can be used in a macro.

And finally, what are those pragmas good for? The 'push' and 'pop'
ones make changes to warnings local. The 'ignored' ones allow
to disable some warnings. And disabling -Wpragmas ensures that we do
not have a warning if we try to disable a warning that is not
supported by the compiler.
2023-11-10 10:36:52 +01:00
Richard Kimberly Heck
9a35fe225d Back to development, hopefully with RC1 next 2023-08-28 20:57:46 -04:00
Richard Kimberly Heck
ab9b923f89 Beta 4 2023-08-28 20:56:51 -04:00
Pavel Sanda
5ff4e506bc This got forgotten for beta3.
Just got confused from date on some reported log...
2023-08-01 18:35:13 +02:00
Richard Kimberly Heck
137fd291c2 Change version to one that RPM will accept. 2023-07-26 19:45:40 -04:00
Richard Kimberly Heck
62fc43eecf In the hope that RC1 is next 2023-06-12 19:40:55 -04:00
Richard Kimberly Heck
a4a1542fe7 Forgot this 2023-01-25 11:24:52 -05:00
Richard Kimberly Heck
ec51c94416 Beta 2 2022-12-11 11:18:42 -05:00
Jean-Marc Lasgouttes
c130ae945b Autoconf: actually require Qt 5.0.0 2022-12-05 19:48:17 +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
Stephan Witt
f700aa98d4 Amend change d1d22a1433 - configure Mac compiler flags on Mac only 2021-12-05 22:42:41 +01:00
Stephan Witt
d1d22a1433 introduce LSMinimumSystemVersion for Mac package with automatic Qt-version based detection plus configure option to choose it manually 2021-12-05 11:10:37 +01:00
Richard Kimberly Heck
33b7088719 Back to development 2021-05-24 15:52:09 -04:00
Richard Kimberly Heck
05fe0fbfa7 Beta 1 2021-05-24 15:07:26 -04:00
Pavel Sanda
833863c477 Allow bundled saxon not to be installed. 2021-03-17 21:51:01 +01:00
Pavel Sanda
901356fd58 Allow bundled saxon not to be installed. 2021-03-16 23:14:19 +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
Richard Kimberly Heck
6f16319879 Back to development 2021-02-14 14:45:33 -05:00
Richard Kimberly Heck
9f6127c8fa Alpha 3 2021-02-14 14:19:16 -05:00
Richard Kimberly Heck
c4bbebdeb6 Back from alpha 2020-12-30 03:52:00 -05:00
Richard Kimberly Heck
d49e54018b 2.4.0-alpha1 2020-12-29 12:02:32 -05:00
Yuriy Skalko
bda4570400 Use new signal library nod instead of boost::signals2
Thanks Enrico for updating autotools files.
2020-12-13 23:11:19 +02:00
Jean-Marc Lasgouttes
6448500ee2 Revert "Remove boost traces from configure.ac"
This reverts commit f899dee382.
2020-11-29 19:22:47 +01:00
Kornel Benko
f899dee382 Remove boost traces from configure.ac 2020-11-29 18:27:47 +01:00
Jean-Marc Lasgouttes
2aff8937ec Add automake support for dtl 2020-04-09 12:40:00 +02:00
Jean-Marc Lasgouttes
c293be56bd Rename frontend qt4 to qt
In particular, the directory frontends/qt4 is renamed to frontends/qt.

Many configurations file have to be updated. All mentions of qt4 in
the source have been audited, and changed to qt if necessary.

The only part that has not been updated is the CMake build system.
2019-07-20 23:39:40 +02:00
Jean-Marc Lasgouttes
8bbc660a25 Let automake create the tar.xz archive
We require automake 1.14 these days, and it can do it by itself.
2019-07-13 19:01:30 +02:00
Jean-Marc Lasgouttes
e485102ef2 For python 3 require at least 3.5
This handles configure.ac and os::python23. What remains to be done is cmake.
2019-06-28 00:06:28 +02:00
Jean-Marc Lasgouttes
03eadb1a66 Use autoupdate to convert some obsolete calls
AC_TRY_COMPILE and AC_TRY_LINK have been obsolete for some time.

Now most autoconf warnings are gone.
2019-06-12 18:10:13 +02:00
Jean-Marc Lasgouttes
5173f22024 Fix some warnings found by the -Wall options of autoconf and automake.
There are still warnings to address. For now, they not enabled by default.
2019-06-12 18:00:18 +02:00
Jean-Marc Lasgouttes
601244ba92 Use HAVE_LONG_LONG_INT instead of LYX_USE_LONG_LONG
It seems that the extra complication hurts more than it helps (for
example with OpenBSD).

Some adaptation will be needed for cmake.
2019-03-21 14:18:17 +01:00
Jean-Marc Lasgouttes
dd8fd3d90a Get rid of monolithic build support for autoconf
It is not useful anymore on modern machines with several cores.
2018-08-30 11:35:37 +02:00
Scott Kostyshak
a2bd6ac642 configure.ac: update LYX_DATE
We update the date to 2018-02-24, which is the date of the 2.3.0
release. For discussion, see:

https://www.mail-archive.com/search?l=mid&q=11760986.J1Atc1jgU7%40amd64
2018-06-04 12:45:09 -04:00
Stephan Witt
f93ec4a1f4 Add Qt-based fallback-converter for Mac to compensate missing ImageMagick convert utility 2017-09-30 18:13:37 +02:00
Kornel Benko
491bf1db24 Update version in configure.ac 2017-08-17 11:21:53 +02:00
Scott Kostyshak
50310de67b Back to development 2017-08-14 04:05:11 -04:00
Scott Kostyshak
8f872ef069 This is LyX 2.3.0beta1 2017-08-14 04:03:24 -04:00
Scott Kostyshak
5a7e08c9a9 Back to development 2017-04-24 00:05:15 -04:00
Scott Kostyshak
ca53991043 This is LyX 2.3.0alpha1 2017-04-24 00:03:20 -04:00
Jean-Marc Lasgouttes
86ae7dad3f Require automake 1.14 and autoconf 2.65
This allows to fix distclean properly, since we know that
subdir-objects is used. When it is the case, it is not a good idea for
a Makefile to use a source file which is under the control of another
one. This could not be made to work work with old automake versions
(<1.14).

Therefore we refer directly to object files in Makefile.am instead of
source files. The actually leads to less compilation in tex2lyx.

Update the code here and there to remove compatibility hacks. Update
documentation.

Re-enable the layout test and fix the Length test, which was ovewriting
memory in test_inPixels() because lyxrc did not had a correct layout.
2017-04-06 14:56:30 +02:00
Jean-Marc Lasgouttes
0e50ad8b16 Update bundled mythes to version 1.2.5
Move it to 3rdparty/ directory alongside the other ones.
2017-03-06 17:08:38 +01:00
Jean-Marc Lasgouttes
8cb021b32f Rewrite detection of MyThes library
Now configure searches in this order
1. system-installed library
2. code bundled with LyX

If --with-included-mythes or if no mythes library is installed, then
the script selects the bundled version. There should be no cases
leading to error message.
2017-03-06 16:10:11 +01:00
Jean-Marc Lasgouttes
2f701e6a1c Clarify configure help for 3rd party code
The configure code suggests that the default for
--with-included-(iconv|zlib|hunspell) is "yes", which is wrong: by
default is indeed to use the system libraries.

Change the MyThes detection to use the system version by default.

Also add to the verison information a line which lists the bundled libraries.
2017-03-02 14:35:39 +01:00
Enrico Forestieri
f70dd65bb2 Fix building on cygwin after 23dbcb59 2016-07-07 23:37:14 +02:00
Georg Baum
2047ea5eb4 Replace Boost.Signals with Boost.Signals2
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.
2016-06-09 22:25:34 +02:00
Guillaume Munch
af5f69cea7 unique_ptr and make_unique 2016-06-09 15:21:39 +01:00
Pavel Sanda
3f4901de9c Improve build for FreeBSD.
Patch from Shankar Giri Venkita Giri.
2016-06-08 19:33:08 -07:00
Georg Baum
273c67d8aa Require a C++11 compiler
As discussed on the list. If no C++11 compiler is found configuration stops
with an error. There are now unneeded parts of boost, the will be removed in
a second commit.
2016-06-07 20:34:52 +02:00
Jean-Marc Lasgouttes
87d4ce0ff7 Remove boost/format support
Only ChkTex.cpp used it, whereas the rest of our code uses the simpler bformat.
2016-05-29 17:55:45 -04:00