Commit Graph

247 Commits

Author SHA1 Message Date
Stephan Witt
1bf4d7b0fc Extend Clang compiler detection to cover Apple CLang
CMake 3.0 and above recognize that Apple Clang is a different compiler than upstream Clang and so it gets a different CMAKE_CXX_COMPILER_ID.
2018-06-12 22:43:03 +02:00
Kornel Benko
6343452a73 Cmake build: Disable possible warn about not known policy 2018-06-10 11:40:12 +02:00
Kornel Benko
72a2f92239 Cmake build: Simplify use of qt5 modules
According to this page:
	http://doc.qt.io/qt-5/cmake-manual.html
the way to replace use of qt5_use_modules() for module "_mod" and target "_target"
is to use
	1.) cmake_minimum_required(VERSION 3.1.0)
	2.) find_package(Qt5${_mod} CONFIG REQUIRED)
	3.) target_link_libraries(${_target} Qt5::${_mod})
The last one sets all reguired libraries, compile flags and needed includes for the ${_target}
2018-06-09 23:59:47 +02:00
Kornel Benko
d6b21e20e2 Cmake build: Adapt to compile with qt5.11
Since qt5_use_modules() is removed from QT5 (as spotted
by Jürgen Spitzmüller), we had to create own version
of this macro.
2018-06-09 16:52:15 +02:00
Kornel Benko
08afacc239 Cmake build: Adapt use of some variables
1.) Rename LYX_PATCH_VERSION to LYX_RELEASE_VERSION.
  This matches the use in automake.
2.) Don't display LYX_DATE at configure time.
  This value is evaluated later at build time
2018-06-03 09:16:55 +02:00
Kornel Benko
933502f991 Cmake mingw build: Get rid of a cmake warning regarding policy CMP0020
For explanation see the output of 'cmake --help-policy CMP0020'
2018-05-14 17:29:45 +02:00
Kornel Benko
aed458f007 Cmake tests: New test for the outliner with beamer
Test idea from Pavel Šanda
Move insets down and up, then compare with expected latex output.
2018-01-14 13:47:27 +01:00
Kornel Benko
03b6ee9f06 Cmake build: Added handling for lyxrc.dist for Apple and Unix
Also added include path for magic.h, as found out by Joel Kulesza
2018-01-03 15:04:21 +01:00
Scott Kostyshak
c9817a4fb5 ctests: run URL tests at beginning
The URL tests can take a long time to complete. By running them at
the beginning, time can be saved when running the ctests in
parallel.

This saves around 10 minutes for me.
2017-12-24 01:02:12 -05:00
Kornel Benko
3b9705da19 Cmake build: Add option to use native file dialog also for linux 2017-11-26 18:50:53 +01:00
Uwe Stöhr
081a9035cf Win installer: big file cleanup
- update the file list in Makefile.am
- don't try to build it via CMake because this requires more than CMakeLists.txt. If it should nevertheless be built via CMake the .cmake files need to be rewritten from scratch
- remove unused and outdated files
- update  an SVG file
2017-11-20 21:05:16 +01:00
Kornel Benko
847c68960a Cmake build: Needed variable for creation of debian package
The variable CPACK_DEBIAN_PACKAGE_RELEASE has to be in the form
of "^[A-Za-z0-9.+~]+$". We will use the abbreviated commit revision for now.
Without this change cmake 3.10 emits error.
2017-10-07 10:47:17 +02:00
Kornel Benko
c2eb1a1a72 Add suffixed lyxconvert to cmake build.
This should amend f93ec4a, but is not tested on apple
2017-10-02 02:00:47 +02:00
Kornel Benko
82246b5109 Cmake build: Unconditionally create many install targets
Previously one needed to use '-D_LYX_INSTALL=ON' to be able to install
some targets. This change only creates rules to make installation possible for
the underlying toolset.

The setting is still needed to create the rules for manuals, lokalizations and
win32 install scripts.
2017-09-25 10:29:40 +02:00
Kornel Benko
854d7e1619 Windows only: A try to compile with LYX_CONSOLE again
The use of the value "FORCE" was wrong anyway, since LYX_CONSOLE
is of type "BOOL".
2017-08-18 12:07:03 +02:00
Kornel Benko
b5c2e02ebd Cmake build: Amend 2fe59ad, Ignore boost settings if we are using std-regex
Even in std-regex case we still need some includes from boost.
Therefore we also need an appropriate include path set.
2017-07-28 11:35:50 +02:00
Kornel Benko
2fe59adbc8 Cmake build: Ignore boost settings if we are using std-regex
External/included boost is only used for the component regex
2017-07-27 23:29:29 +02:00
Kornel Benko
0f881e202e Cmake build: Remove unnecessary duplication of c++ flags
Apparently cmake concatenates CMAKE_CXX_FLAGS to the Release and Debug flags
Also eliminated the mix of '-std=c++*' and '-std=gnu++*' flags
2017-07-27 13:33:17 +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
Kornel Benko
ba0492faee Cmake build: Try to figure out at configure time which qt version to use
Selecting -DLYX_USE_QT=AUTO (which is the default now) will try
to figure out which QT-version to use.

The qt4 version will be used if it is installed and the installed qt5-version is <= 5.6
Otherwise use qt5 if it is installed.
2017-05-02 14:12:41 +02:00
Kornel Benko
0935f94f0d Cmake build: Correct suffixing on non-gcc-compilers
If the value LYX_PROGRAM_SUFFIX is not handled, we have to use
LYX_PACKAGE_SUFFIX.
The naming 'PACKAGE' in our sources is misleading, as it is used
for the name of the debian/rpm packages as well.
2017-05-02 08:16:00 +02:00
Kornel Benko
d74c43e7a3 Cmake build: Remove use of policies which will be deprecated in near future
In order to prevent unpleasant surprises later.
(Cmake 3.8 already emits now warnings here.)
2017-04-30 18:12:13 +02:00
Kornel Benko
0f3b1539e8 Cmake build: Prefer using pyton3 over python2 2017-04-24 17:48:59 +02:00
Kornel Benko
fb79d6ed4f Cmake build: Enable std_regex over boost_regex again 2017-04-24 17:47:39 +02:00
Kornel Benko
5d4db9dcf5 Cmake build: Set cache variables correctly
In case of LYX_EXTERNAL_MYTHES==AUTO, the setting never made it into cache.
2017-03-25 12:43:53 +01:00
Kornel Benko
5d3d26b024 Cmake build: Adapt handling of mytheslib to automek behaviour
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
2017-03-07 14:27:08 +01:00
Kornel Benko
15babdc0f1 Amend 0e50ad8 'move mythes sources to 3rdparty' for cmake build. 2017-03-06 19:31:23 +01:00
Kornel Benko
e78e58a7de Cmake build: Shuffle code around. 2016-09-12 11:04:14 +02:00
Kornel Benko
4f1095cdbc Cmake build: Specify the correct value of 'PACKAGE' define in config.h
This was wrong in case where no program suffix was allowed
Spotted by Scott.
2016-08-03 12:09:04 +02:00
Kornel Benko
7eea0b6fa8 Cmake build: Added code to compile with QT5.7
QT5.7 cmake config files explicitly instruct cmake to use `-std=gnu++11`.
This is not the same as is found by our FindCXX11Compiler.cmake,
which leads to compilation errors.
Here we overrule the setting.

Thanks to helpfull hand from Brad King <brad.king@kitware.com>
2016-07-15 10:37:18 +02:00
Scott Kostyshak
2b6f822bad Add CMake flag for keytests and disable by default
The keytests were previously enabled by default if the necessary
dependencies were found. They require a GUI and mouse so can
sometimes be annoying. Further, they are not currently reliable.
They are thus now disabled by default.
2016-07-13 04:52:46 -04:00
Enrico Forestieri
cb0c881b02 Fix paste of selection to (unfocused) external applications
With both Qt4 and Qt5, when using a click-to-focus policy, the first
attempt to paste a selection by middle mouse in an external application
which has no focus may fail. It is not clear why this succeeds for some
applications and fails for others, but refreshing the timestamp of the
selection request cures the issue. The cmake part is by Kornel.

See also this thread:
http://thread.gmane.org/gmane.editors.lyx.devel/162491
2016-07-10 19:31:32 +02:00
Kornel Benko
a51847f33f Cmake build: Split use of 3RDPARTY_BUILD to build individual libs
The split is now analogous to automake. The individual libs are handled
analogously to already handled boost.
automake config setting			cmake config settings
--with-included-iconv			-DLYX_EXTERNAL_ICONV=OFF
--with-included-zlib			-DLYX_EXTERNAL_Z=OFF
--with--included-hunspell		-DLYX_EXTERNAL_HUNSPELL=OFF
2016-07-05 16:07:03 +02:00
Georg Baum
5ef180842c Ensure that iconv and zlib are always found
If the included thirdparty libs are requested, use them, even on unix. This is
consistent with autotools (but the recommended way is of course to use the
system libs). If the included thirdparty libs are not requested then try to find
libiconv and zlib also on windows. This will lead to an error unless the libs are
found via manually added include and link paths, but this is wanted since
libiconv and zlib are not optional.
2016-07-02 11:09:26 +02:00
Georg Baum
03cfeae00a Make LyX compiled by MSVC 2015 run on Vista again
Patch and tests from Dima Ruinskiy, comments by me. For details see discussion
in bug 10186.
2016-07-01 22:05:55 +02:00
Georg Baum
48fd76d4bf Fix windows dependencies download
The paths and servers have changed, and a MSVC 2013 version is not provided
anymore.
2016-06-19 12:47:30 +02:00
Georg Baum
e307944d18 Require gcc 4.6
See also 5de30b1210
2016-06-15 22:04:51 +02:00
Kornel Benko
a71fba47ab Cmake windows build: Discard use of configCompiler.h.msvc
This file doubles the struggle when inventing new configuration tests.
Hopefully we get soon a confirmation if the withdraw is OK.
2016-06-15 11:29:09 +02:00
Kornel Benko
48bad4b581 Cmake build: Correct wrong comment 2016-06-11 12:44:15 +02:00
Kornel Benko
24a7dd45dc Cmake build: Determine availability of 'std::regex' if using clang compiler 2016-06-11 12:23:33 +02:00
Kornel Benko
f792837531 Cmake build: Finetune some destination data paths on UNIX 2016-06-10 13:40:38 +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
Kornel Benko
8019732b39 Cmake build: Check for QPA_XCB when QT_USES_X11 is known
Since QT_USES_X11 is determined in ConfigureChecks
we have to check after this call
2016-06-08 09:21:48 +02: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
Kornel Benko
9dd695b17a Cmake build: Correct some installation paths 2016-06-07 14:38:20 +02:00
Kornel Benko
06539caccb Cmake build: Refactor determination of destination paths. 2016-06-06 08:29:07 +02:00
Kornel Benko
b5c87f2963 Cmake build: Set new installation paths
For a suffixed version (with suffix 2.3) and installation dir (/usr/local)
the new paths are:
binary -> /usr/local/bin
system-lib -> /usr/local/share/lyx2.3
fonts -> /usr/local/fonts/truetype/lyx2.3
manuals -> /usr/local/man/man1
locales -> /usr/local/share/locale
tex -> /usr/local/texmf/tex/latex/lyx2.3
2016-06-05 22:59:13 +02:00
Kornel Benko
7c0eba4d75 Cmake build: Allow user defined suffix for program files 2016-06-05 16:26:59 +02:00
Georg Baum
c2433d8b8f Implement gcc version check for cmake 2016-06-05 15:54:29 +02:00
Kornel Benko
4aa88e982a Use guard for QT5/XCB also for cmake build.
See commit d4428ceb81
from Enrico Forestieri
2016-04-09 11:53:55 +02:00
Kornel Benko
a413d667ca Set C++11 option defaulting to 'AUTO' as it is on autotools too.
Nothing changes for already cached values.
With fresh build-dir and in 'AUTO'-mode we try to determine if the c++ compiler
is able to use this feature.
2016-02-11 09:03:07 +01:00
Peter Kümmel
03e7e5cfb3 improve configuration with cmake-gui 2016-01-22 12:47:23 +01:00
Peter Kümmel
6e6f9ac3d0 man: use dummy path on Windows 2016-01-20 19:39:48 +01:00
Peter Kümmel
6dcecd9199 msvc: always build 3rdparty libs 2016-01-20 19:39:48 +01:00
Peter Kümmel
6e3a4ecfe7 mingw.bat: circumvent critical python detection
LyX could be build with a double click on mingw.bat.
2016-01-13 15:46:44 +01:00
Peter Kümmel
407bb15bde add batch file for MinGW build on Windows 2016-01-12 20:10:51 +01:00
Peter Kümmel
3c3141dc23 3rdparty/boost: build with cmake 2015-12-20 13:41:00 +01:00
Kornel Benko
435db257e6 Remove 3rdparty-build for iconv and zlib on unix. 2015-12-20 11:49:38 +01:00
Peter Kümmel
a3646a42a9 fix build for 3rdparty dir out of src/ 2015-12-15 13:20:13 +01:00
Peter Kümmel
6cc83c5072 bundled iconv uses const 2015-12-15 13:20:11 +01:00
Peter Kümmel
7d2c054611 also build without gnuwin32 directory 2015-12-15 13:20:10 +01:00
Peter Kümmel
584c3a6f7b build with msvc2013 2015-12-15 13:20:10 +01:00
Peter Kümmel
b46ea7fac0 integrate 3rdparty libs 2015-12-15 13:20:10 +01:00
Kornel Benko
5bc44b2cf2 Cmake build: Use only real absolute path to the cmake sources.
This change resolves symlinks, so that lyx called from the buil-dir
always finds 'his' system dir.
2015-12-11 23:23:46 +01:00
Uwe Stöhr
d9c5483bff CMakeLists.txt: fix whitespace 2015-12-10 01:24:04 +01:00
Peter Kümmel
d3092fc355 now we have MSVC13 3rdparty binaries 2015-12-09 16:45:15 +01:00
Peter Kümmel
8028110578 qtmain also needed for Qt5 on Windows 2015-12-09 16:45:15 +01:00
Georg Baum
a15aafa2a1 Use std::regex automatically in C++11 mode
This is consistent with autotools. The only exception is MSVC, since we do not
know yet whether it works.
2015-12-06 20:04:21 +01:00
Vincent van Ravesteijn
02db183373 cmake: Properly suppress CMake warning about qtmain
CMake policy CMP0020 exists since version 2.8.11, so this prevents an
error on older versions.

This fixes up commit ec6f51b.
2015-10-28 20:24:47 +01:00
Peter Kümmel
ec6f51b373 Suppress CMake warning about qtmain 2015-10-23 16:59:31 +02:00
Peter Kümmel
c39869cc61 Also cross compile with Qt5
Assume Ubuntu pathes for mingw.
2015-10-23 16:34:55 +02:00
Peter Kümmel
a3b5ff264d Remove linebreak after GCC version string 2015-10-23 15:20:32 +02:00
Peter Kümmel
2aba6448a7 Remove hard coded Qt selection when cross compiling for Windows 2015-10-23 15:14:59 +02:00
Kornel Benko
0af49debee Cmake build: Remove support for concept checks.
See also commit 7f4101a
2015-09-25 14:55:50 +02:00
Kornel Benko
0c3624e36a Cmake build: Warning if system boost and stdlib-debug are used together
Change according to commit d95c187b5
2015-09-22 15:27:35 +02:00
Kornel Benko
e3524cefaa Cmake build: Abort build-configuration if using a too old c++ gnu compiler 2015-05-14 21:21:07 +02:00
Kornel Benko
dbc4c71ef5 Cmake preparation to support python3 2015-03-10 17:29:58 +01:00
Kornel Benko
a15468e260 std:regex cleanup for cmake
Do not use system boost regex lib when not needed.
2015-01-07 09:01:25 +01:00
Georg Baum
394e1bf99c Use std::regex if possible
It works with gcc >= 4.9.0 and clang (with libc++ or gcc libstdc++ from gcc
>= 4.9.0). The MSVC parg is missing, because I cannot test it, and the
autotools build still link against boost::regex even if it is not needed, but
I don't know how to fix that.
2014-12-28 18:08:18 +01:00
Enrico Forestieri
9126a99e97 Fix bug #9217: [Qt5] QWindowsMime class not available
The support for QWindowsMime has been reintroduced in Qt 5.4.0.
The class name has been changed to QWinMime but the interface
is exactly the same.
2014-12-26 16:53:31 +01:00
Georg Baum
6f34a8a640 Get rid of tr1 support
As discussed on the list. We don't need it anymore, either we have a modern
compiler that supports C++11, or we fall back to boost. I kept and adjusted
the regex #define, since we cannot use std regex completely yet.
2014-12-23 22:18:08 +01:00
Georg Baum
90b1f084bf Improve C++11 support
If we compile in C++11 mode, do not use the boost replacements for bind,
functional and shared_ptr. regex is excluded, since it misses match_partial, and
gcc does not provide a usable one in versions less than 4.9.0.
I also removed the #define for match_partial, since this is dangerous. Now you
get a compile error instead of subtle runtime differences.
2014-12-21 20:22:16 +01:00
Kornel Benko
edf22ba723 Cmake build: Detect clang and adapt definition of STD_STRING_USES_COW. 2014-12-08 17:43:05 +01:00
Georg Baum
83bee109db Make trivstring class ready for use
The interface is now 100% unit tested, and the typedefs depend on the new
STD_STRING_USES_COW configuration variable. The only missing bit is to detect
clang and disable STD_STRING_USES_COW for clang.
2014-12-07 13:14:17 +01:00
Kornel Benko
81afd10fc7 Cmake build: Moved creation of variable LYX_GIT_COMMIT_HASH to development/cmake/scripts/LyXGetVersion.cmake.
1.) The only file which needs this define is src/version.cpp. Our use in config.h
resulted in recompiling most of our sources.
With this change, only version.cpp needs to be recompiled.

2.) Without reconfiguring, the old commit hash was still valid. Now the
detection of commit hash is done at compile time.
2014-10-24 16:58:54 +02:00
Kornel Benko
153086ac30 Cmake build: Omit also hidden header files from globbing 2014-10-21 15:04:48 +02:00
Kornel Benko
652835bdea Cmake build: Omit files with names not starting with aplha character. 2014-10-21 14:50:44 +02:00
Kornel Benko
a24e076046 Add the git commit (if applicable) to LyX version
Addition to cmake.
Patch mostly from Stephan Witt.
2014-10-11 11:18:48 +02:00
Stephan Witt
1e1c2ed1d1 Qt5MacExtras is required on a Mac; report the version of Qt5 2014-08-24 21:59:12 +02:00
Kornel Benko
c2d9a22639 Cmake build: Use find_package(Qt5X11Extras ...) independent of OS
We need to know, if Qt5 is built over X11 in order to test with
xvkbd, which manipulates XEvents.
Qt5X11Extras is independent of underlying OS.
2014-08-23 11:36:24 +02:00
Stephan Witt
327da4f275 Add QtMacExtras detection for Qt5 support 2014-08-21 18:22:43 +02:00
Stephan Witt
7b31da6793 Add policy definitions to avoid warnings from cmake 3.0.0 2014-08-21 18:03:37 +02:00
Peter Kümmel
048571a2bf CMake: add option to enable address sanitizer 2014-08-10 11:23:42 +02:00
Kornel Benko
63976066ad avoid qt4 variable names in cmake build 2014-07-21 08:49:05 +02:00
Kornel Benko
7bc0a6f388 Cmake tests: Optimizing the cmake configuration time
The configuration time suffers mostly on checking, which of the export tests
is to be reverted.
1.) There is a new configuration flag now, "LYX_ENABLE_EXOPRT_TESTS.
   If not set (default) no export tests are created.
2.) If set, then the optimization halves the time needed for creation of tests.

The effect on my side:
        a.) Until now the time was:        ~ 26 seconds
        b.) The optimized time is now:     ~ 16 seconds
        c.) With not enabled export tests: ~  5 seconds
2014-06-21 21:15:54 +02:00
Scott Kostyshak
5594b43d2c Add comment and fix a typo 2014-06-12 17:56:57 -04:00
Stephan Witt
e67e37d759 Apple has builtin native spell checker, no need to warn for missing Aspell, hunspell or Enchant 2014-06-12 14:55:56 +02:00
Kornel Benko
e264b69cfb Cmake build: Use LYX_COMBO() to select the qt-version to use.
Collaboration with Scott Kostyshak
2014-06-09 10:19:59 +02:00
Kornel Benko
2a0ae2e739 Cmake build: Add combo-values to the list of displayed lyx options 2014-06-07 21:00:46 +02:00
Kornel Benko
8c0e1b5c70 Cmake build: Added convenience macro LYX_COMBO
Will be used later to allow selection between multiple alternatives.
2014-06-07 10:45:13 +02:00