Commit Graph

545 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
cbc9a901af Limit the -Wall flag to C++ compiler
This avoids tons of warning when compiling code, like libiconv, which is
not prepared to this kind of scrutiny of its code quality...
2020-11-20 13:45:30 +01:00
Jean-Marc Lasgouttes
b5d1f2f300 Fix compilation of included libiconv with autoconf 2020-11-19 13:44:01 +01:00
Jean-Marc Lasgouttes
031720b66a Do nothing if hunspell support is disabled 2020-11-19 13:44:01 +01:00
Kornel Benko
042128b643 Automake build: We are using 3rdparty iconv with version 1.15 2020-11-17 23:07:01 +01:00
Jean-Marc Lasgouttes
acce7a9ce8 Fixup ce526607 again: last-minute blunder 2020-11-03 16:22:20 +01:00
Jean-Marc Lasgouttes
c872cbb8cc Fixup 6394dd89: small cleanups 2020-11-03 15:12:20 +01:00
Jean-Marc Lasgouttes
ce526607ff Make it possible to select C++ standard with autoconf
Introduce new configure option --enable-cxx-mode=MODE, which allows to
force a C++ version. The default is {14,11}, which means that C++14 is
chosen if it is supported, and C++11 will be selected as a fallback.

Using --enable-cxx-mode=11 ensures that LyX compiles correctly
with an older C++11 compiler.
2020-11-03 15:12:20 +01:00
Jean-Marc Lasgouttes
f6921d9161 Do not honor stdlib-debug when c++library is not gcc's libstdc++
Actually the real difference is that it does not complain about system
boost any more when LLVM's libc++ is used.
2020-10-25 12:45:04 +01:00
Jean-Marc Lasgouttes
4aee447af1 Use -Wno-deprecated-copy only when supported by compiler
This is better than depending on compiler version. In particular,
Apple clang versions do not match regular clang versions.

Note that -Wno-deprecated-copy will always be used with g++, since
this compiler allows to suppress warnings it does not know about
(-Wno-zorg is valid, even though -Wzorg triggers an error).
2020-10-13 18:27:25 +02:00
Jean-Marc Lasgouttes
24fb0ff8ef Use -Wno-deprecated-copy also with clang++ 11 2020-10-05 18:18:15 +02:00
Jean-Marc Lasgouttes
db5021c42e Avoid warnings about deprecated copy in gcc 10 too 2020-04-30 12:09:17 +02:00
Jean-Marc Lasgouttes
e9e8069b17 Disable deprecated-copy warning with clang10
This was already done for gcc9 and saves tons of warnings.

Note that the warning in Qt are gone with Qt5.13, so eventually we
will have to get rid of our own copy issues.
2020-04-28 13:16:45 +02:00
Jean-Marc Lasgouttes
2aff8937ec Add automake support for dtl 2020-04-09 12:40:00 +02:00
Jean-Marc Lasgouttes
c3bf053dd3 Do not put C++-only options in AM_CPPFLAGS 2020-04-09 12:24:44 +02: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
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
f0810d8092 Search also for Python named `python'
This is needed for macOS, apparently.
2019-06-25 12:04:26 +02:00
Jean-Marc Lasgouttes
44bbd0b0ef Get full version of gcc
Recent gcc versions return a short version with -dumpversion, e.g. 9.

In this case, use -dumpfullversion, which gives something like 9.1.0.

This makes the gcc 9 detection work properly.
2019-06-12 20:35:11 +02:00
Jean-Marc Lasgouttes
134f3aedaf Avoid warnings with gcc 9
The warning about unneeded std::move can be solved by conditioning on
C++14 mode.

The warnings about deprecated copy is harder, so we disable it for
now. We will be able to fix our part, but Qt triggers it a lot too.
2019-06-12 18:49:29 +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
c3484fa6c8 Update the in-source hunspell to version 1.7.0 2019-06-12 16:38:42 +02:00
Jean-Marc Lasgouttes
22f599250e Remove support for gcc 4.6
This was kept so long because of Ubuntu 12.04 LTS, but having a
not-really-c++11 compiler is not nice.
2019-06-12 15:03:18 +02:00
Jean-Marc Lasgouttes
d933d72fa9 Search for python3 first, then python2 in autoconf
Python 3.x shall have priority over python 2.x. In 2.5.0dev, support
for python2 will be removed.

Now, we ignore all pythonx.y names, which are not relevant, and do not try
either the basic "python" name.
2019-05-16 18:36:41 +02:00
Jean-Marc Lasgouttes
4028eefe61 Make callstack printing useful and optional
When callback printing is enabled, link lyx with -rdynamic, so that
stacks have LyX symbols available.

Add option --disable-callstack-printing to configure.

Running "size" on binary:
 * with callstack printing support
   text	   data	    bss	    dec	    hex	filename
20891684	  34680	 107796	21034160	140f4b0	src/lyx

 * without callstack printing support
    text	   data	    bss	    dec	    hex	filename
17953640	  34648	 107796	18096084	1141fd4	src/lyx
2019-02-25 17:58:06 +01:00
Jean-Marc Lasgouttes
e78a5bd1a8 Fix help message for --disable-qt5 2019-02-25 16:24:30 +01:00
Enrico Forestieri
0cab640035 Try with Qt4 when configuring for Qt5 fails
This allows to avoid using --disable-qt5 when only the Qt4 libraries
are available.
2018-08-27 16:31:51 +02:00
Enrico Forestieri
a7ea98a30a Make Qt5 the default for building
Until now, building with Qt5 required using --enable-qt5.
This is no more necessary. To build with Qt4 one should now
use --disable-qt5 or, equivalently, --enable-qt5=no.
2018-08-26 15:02:59 +02:00
Jean-Marc Lasgouttes
d7020ea919 Warn when using system hunspell in stdlib-debug mode
This is what we already do with boost. Note that the warning only
triggers with the new C++ ABI.
2018-04-09 15:50:50 +02:00
Juergen Spitzmueller
1efef5542b Adapt to new hunspell C++ ABI
Fixes: #10547

CMake support still missing.
2018-03-29 18:43:11 +02:00
Jean-Marc Lasgouttes
d9e0a842cf Compile 3rdparty/hunspell in stdlib-debug mode when needed
A function that returns a vector<string> will lead to a crash if the
main code and the library have not been compiled with the same
stdlib-debug state. See for example:
https://stackoverflow.com/questions/4764048/stl-and-release-debug-library-mess

This is fixed by introducing a new variable STDLIB_DEBUG that contains
the flags that trigger the debug mode (autoconf only for now).

This will allow to go forward with bug #10547.
2018-03-29 12:08:48 +02:00
Juergen Spitzmueller
1ae537c543 Change lookup order for enchant-2 vs. enchant (prefer the former) 2018-03-19 09:56:53 +01:00
Juergen Spitzmueller
71977769ec check for enchant-2
Fixes rest of #10986
2018-03-19 09:03:35 +01:00
Jean-Marc Lasgouttes
63a4e82874 Add support for enchant 2.x
As of enchant 2.x, it is required to create a Broker instance instead
of relying on a static one provided by the library.

Add autoconf and cmake (courtesy of Kornel) tests that check whether
one can indeed instantiate a Broker object, and act on the result in a
new broker() helper function.

Fixes bug #10986.
2018-01-30 12:11:22 +01:00
Enrico Forestieri
6253cc4c51 Account for Qt 5.10
Fix regular sed expression in order to catch a second digit in the
Qt minor version number.
2018-01-05 19:29:12 +01:00
Jean-Marc Lasgouttes
e8d8f0abf8 Revert "autoconf"
I did not plan to push this

This reverts commit 0bd6cc30bc.
2017-10-11 12:02:25 +02:00
Jean-Marc Lasgouttes
0bd6cc30bc autoconf 2017-10-11 11:20:59 +02:00
Juergen Spitzmueller
a8204c4630 Indentation fixes. 2017-09-18 18:38:09 +02:00
Juergen Spitzmueller
3b89cd9c28 Update internal Hunspell to latest release (1.6.2) 2017-09-18 18:12:21 +02:00
Juergen Spitzmueller
561d36a19e Do not disable the other spellers when compiling against internal hunspell
Users might still want to have a selection.
2017-09-18 18:06:01 +02:00
Juergen Spitzmueller
be36fe6e62 Define USE_HUNSPELL when compiling against included hunspell.
Otherwise, the speller is disabled.
2017-09-18 17:31:42 +02:00
Jean-Marc Lasgouttes
9fe8190364 Make "devel mode" configurable at run time
Traditionally LyX behaves differently when the directive DEVEL_VERSION
is defined at compile time. This covers
* more detailed description of current position in status bar
* the help files are open in read/write mode
* more detailed debug output in the View Source panel

This patch introduces the new function devel-mode-toggle that allows
to use devel mode in stable releases, and vice versa.

The information is saved in the session file. The default is to
disable devel mode.

Remove all traces of DEVEL_VERSION in autoconf and cmake
2017-07-24 22:00:44 +02:00
Jean-Marc Lasgouttes
fb8148b8c4 Remove unused autoconf macro 2017-04-25 12:16:23 +02:00
Jean-Marc Lasgouttes
cd48fb8ae7 Configure options cleanup
The default build type (computed from LyX version) is now displayed in
configure help.

Change a little bit the help text of several options.
2017-04-24 11:33:15 +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
aa6619237d Fixup to 2f701e6a1
Use the bundled mythes by default again, since the current situaiton
create an error for anybody who does not have the system one
installed.

This is a stop gap measure and I'll return to it later (in a hurry now).
2017-03-03 12:01:54 +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
b541692823 Fix configuring for Qt 5.8
They moved the QT_QPA_DEFAULT_PLATFORM_NAME definition to the newly
introduced qtgui-config.h header.
This fix is also necessary for cmake, but I don't know how to do it.
It would be simply a matter of using QtGui/qtgui-config.h instead
of QtCore/qconfig.h, if QtGui/qtgui-config.h exists.
2017-02-07 11:29:30 +01:00
Enrico Forestieri
41e409f8f7 Use std::call_once only if it is actually available 2016-08-07 04:58:41 +02:00