Commit Graph

198 Commits

Author SHA1 Message Date
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
Peter Kümmel
6b4c3036aa std::min/max are defined in <algorithm>
handle error in msvc12 when linking against msvc10 libs
2014-06-07 08:17:20 +02:00
Peter Kümmel
080fca85a8 build with mingw on Windows and Linux 2014-06-07 08:06:13 +02:00
Kornel Benko
046001e571 Make: improve detection of X11 with Qt 5
In collaboration with Scott Kostyshak:
With Qt 4 we could use Q_WS_X11, defined by FindQt4.cmake. In Qt 5,
there is no FindQt5.cmake. Instead we now define our own variable,
QT_USES_X11 by using class QX11Info available only on X11.
(http://qt-project.org/doc/qt-5/QX11Info.html)

The main consequence of this improved support is that now the keytests
can be run (ctest -R "keytest") when LyX is compiled with Qt 5.
Before, with Qt 5 we did not know if X11 was available, which is
needed by xvkbd, so the tests were not enabled. Note, however, that
many tests fail with Qt version 5.2.1 because there was a change in
the event handling mechanism in Qt that causes xvkbd to be unable to
pass capital letters (so case sensitive greps in the tests fail). This
needs to be investigated and reported.
2014-05-25 13:50:18 +02:00
Kornel Benko
f82883b097 Cmake build: Unify defines for spellchecker in config.h 2014-05-13 14:52:11 +02:00
Kornel Benko
6dc198ed6e Cmake build: Search for spell checking libraries unconditionally
New option: LYX_REQUIRE_SPELLCHECK. If set and no spellchecker found
  stop the compilation
  if not set, compile in many speckeckers as possible from the set
  of 'ASPELL', 'Hunspell', 'Enchant'
2014-05-13 12:31:37 +02:00
Kornel Benko
2ebcf38493 Cmake build: Install lyx*.desktop and lyx*.svg files in appropriate locations for unix 2014-05-09 10:04:42 +02:00
Kornel Benko
21541a07de boost, cmake: Turn off warning that signals are deprecated 2014-04-29 18:01:50 +02:00
Benjamin Piwowarski
d863088986 Revert "Objective-C compililation support with cmake and C++11"
This reverts commit c2e67a41ce.
2014-04-22 09:36:17 +02:00
Benjamin Piwowarski
6468cd97e3 When LYX_ASPELL is on, fails if not finding the library
Otherwise, this was triggering errors latter in the build process
2014-04-21 11:51:04 -04:00
Benjamin Piwowarski
14de3aa49b CMake install and bundling improvements (esp. OS X)
This patch improves the cmake bundling process:
- reworked bundle handling for OS X: only when installing resources are copied, otherwise
only the smallest bundle is built
- on OS X, the utility programs (tex2lyx) are now installed in the right location
- it removes some unneeded BUNDLE DESTINATION
- it provides a basic support for QT plugins inclusion
- it properly builds a disk image on OS X (only the background image is missing)
- it fixes the library paths for all executables (not only LyX)
- Use the COPYING file for cmake install license
2014-04-21 11:51:04 -04:00
Benjamin Piwowarski
c2e67a41ce Objective-C compililation support with cmake and C++11
This fixes an issue whe compiling with C++11 flags on: The
objective-C clang compiler produces an error. This patch waits
avoid including specific C++ flags and uses LYX_CPP_SPECIFIC_FLAGS
to store the confliciting flags (for the moment, just C++11).
2014-04-21 11:51:04 -04:00
Stephan Witt
b73c6462d6 simplify XCODE_VERSION check 2013-12-31 15:49:19 +01:00
Stephan Witt
130ad13dee avoid CMAKE_XCODE_ATTRIBUTE_GCC_VERSION assignment for Xcode 5.0+
it is not needed anymore and the current assignment is wrong in this case
2013-12-31 10:24:27 +01:00
Kornel Benko
499c5cfe57 Adapt cmake build to use c++11 features also for clang compiler 2013-12-15 11:41:28 +01:00
Kornel Benko
99c92de8aa CMake: allow compile-time C++ flags to be set
For developper only, therefore the variable is set to advanced.

Ideas from: Scott Kostyshak + Vincent van Ravensteijn
2013-12-05 12:00:02 +01:00
Kornel Benko
7033b15793 Cmake build. Use 2.0.0 git-tag to receive the number of commits.
This number is only used for created package name.
2013-11-30 19:53:30 +01:00
Scott Kostyshak
374cf6a39f CMake: allow compile-time C++ flags to be set
For example, one could run CMake as follows:
  cmake -DLYX_CXX_FLAGS_EXTRA="-Werror"

Thanks to Kornel.
2013-11-30 13:08:21 -05:00
Scott Kostyshak
9edb2c5ec9 Whitespace correction 2013-11-30 13:08:21 -05:00
Kornel Benko
95c4d7caf9 Cmake build tests: Make the tests for valid urls available to public
These tests already proved being valuable.
2013-09-06 15:03:47 +02:00
Kornel Benko
0a779e9543 Cmake build: Move default for man-pages to /usr/local/man
and at the same time make it configurable.
Until now it was hard wired to a subdirectory of installed lyx.
2013-09-06 14:56:31 +02:00
Kornel Benko
788e2b1ac8 Cmake build tests: Unify use of userdir
While some test runns lyx-exe, we need userdir be
different from default. All relevant tests should use the same directory.
2013-08-25 11:41:10 +02:00
Kornel Benko
22d52f5f08 cmake: Use provided gmo-files if platform lacks python or gettext tools.
Running lyx from the build-directory now searches for the gmo-files
first in the build dir and then in source dir
2013-06-02 11:38:27 +02:00
Vincent van Ravesteijn
a3c864102a CMake: Remove libintl 2013-05-30 22:10:01 +02:00
Vincent van Ravesteijn
4738ba0f1a qt5: Fix use of zlib using config.h 2013-05-14 17:34:53 +02:00
Vincent van Ravesteijn
900cbcd2ad qt5: Treat wchar_t as a builtin type
Qt5 is compiled treating wchar_t as a builtin type, while Qt4 did not. So,
we have to do the same.
2013-05-14 14:23:58 +02:00
Vincent van Ravesteijn
6f8a74791b Adjust CMake for Qt5 2013-04-23 21:45:49 +02:00
Kornel Benko
7dbd777146 cmake build: Add check for required QT-version 4.5.0 or higher
Since our own module does not respect the version parameter,
while the cmake provided does, also remove our FindQt4.cmake
2013-03-20 11:39:45 +01:00
Kornel Benko
0ea6654228 Cmake build: Creating a define for a header file found
need now only changes in the list of header files in ConfigureChecks.cmake.
2013-02-12 19:01:16 +01:00
Kornel Benko
ae04b1a18e Cmake build: Correct the previous commit.
We have to apply configure_file() twice, therefor the new file.
2013-02-12 17:40:32 +01:00
Scott Kostyshak
14d388e0db Add a space in CMake flag description 2013-01-30 06:53:00 -05:00
Kornel Benko
28f5fcd56b Cmake build: Enable to install also a debug version 2013-01-26 11:29:48 +01:00
Kornel Benko
f456260562 Cmake build:
New target: git-archive. It uses the archive comman of git to create
the complete source package.
This Target is only available if
        1.) there is a git command on this host
        2.) the lyx-source is under git control
2012-12-18 10:49:21 +01:00
Vincent van Ravesteijn
1b3871b302 Add custom target to run tests
This target can depend on the individual test projects and this makes sure
that the test projects are build before running the tests.
2012-12-17 22:26:14 +01:00
Vincent van Ravesteijn
0cd8c03d17 CMake: Put projects into subdirs
This patch puts all projects into subfolders (at least for MSVS). In this
way, there is a better overview (especially if the number of test projects
will be increasing).
2012-12-15 11:02:06 +01:00
Stephan Witt
471fdcd9d0 revert change 1dcb70a 2012-12-14 16:26:18 +01:00
Kornel Benko
81500fc99b Cmake build:
Move definitions of target ${_lyx} and ${_tex2lyx} to top-most directory,
to make them overall available
2012-12-14 12:23:17 +01:00
Stephan Witt
1dcb70a12f guard autotests with X11 window system check result 2012-12-13 20:54:13 +01:00
Kornel Benko
57b04ac7f4 Cmake build: First try to use autotests.
Many test are not running, but if changed the '-dbg xxx' to '-dbg any'
then all of sudden they pass ...
(The buffered output of lyx is often disrupted too early with 'kill -9',
so the expected data are not available for the appropriate test)
2012-12-11 15:17:04 +01:00
Kornel Benko
d91d6e3343 Cmake build:
Cleanup the use of path-variables
2012-11-02 13:33:22 +01:00
Kornel Benko
854b168d17 Cmake build:
Correct dependencies for version-info also at build-time
(not only at configure time)
2012-11-01 13:00:19 +01:00
Kornel Benko
28ebc59517 Cmake build:
Add option LYX_ENABLE_CXX11 to enable C++11 mode for gnu CXX compiler
2012-10-24 11:36:54 +02:00
Kornel Benko
f7680c696d Cmake build:
Added dependencies to target `test'. Now all the needed executables
are recreated prior to running tests if not already existant.
2012-10-21 16:58:45 +02:00
Kornel Benko
ed5dfa9cd7 Cmake tests:
Add tests the cmake-way. Now there is only _one_ target `test'
2012-10-21 12:05:50 +02:00
Kornel Benko
419f32df91 Cmake build:
Creating LYX_DATE dynamically at configure-time caused unwanted recompilation
of the whole directories (src + src/tex2lyx) because all the relevant objects
were dependent of a common file (flags.make in case of "Unix makefiles") which changed
accordingly.
There is now a new include (lyx_date.h, with only one definition)

Nothing changes for automake, since in this case LYX_DATE is defined in config.h
2012-10-15 22:50:39 +02:00
Kornel Benko
794e306c2e Cmake build:
Use ISO 8601 format for LYX_DATE, this makes it translated
2012-10-15 17:53:17 +02:00
Kornel Benko
75d63ad1f2 Cmake build: Use the timestamp of last commit (iff possible)
while idetifying the lyx-version.
2012-10-14 21:55:42 +02:00
Kornel Benko
20359572ed Patch from Benjamin Piwowarski
Just some comments on the patch:

- The executable name has to match the information in Info.plist (development/MacOSX/Info.plist.in and CMakeLists.txt).  The autoconf config/lyxinclude.m4 file has been modified to make it work with autotools.

- The process to build OS X bundle is to first add all the files to be included to the bundle when calling add_executable (src/CMakeLists.txt) and then by calling setting the source file property of each of these files (development/cmake/Install.cmake, l.14) so that the files are properly located into the bundle. This is also why Install.cmake has to be included two times in src/CMakeLists.txt (once to build the list of files, once to set the location of the list of files).

- in CMakeLists.txt there is a line
install(CODE "set(BU_CHMOD_BUNDLE_ITEMS 1)")
What it does is to fix the owner permissions within the bundle - this is necessary because some libraries are copied within the bundle and might be owned by root

- An empty qt.conf is included in the bundle so that QT does not try to link to other QT libraries (which will not be included in the bundle)

- In development/cmake/Install.cmake, some OS X specific files (*.sdef, qt.conf, *.icns) have to be included in the bundle

Benjamin
2012-10-13 09:53:20 +02:00
Kornel Benko
0c76f9c430 Cmake build: No header files in po-dir, so no need to include in cc commands 2012-10-05 12:27:15 +02:00
Kornel Benko
b1a409be97 Make package name be platform dependent 2012-09-21 15:09:46 +02:00