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)
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
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.
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
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.
The GNU libstdc++ that ships witch gcc 5 can be used with the same ABI as
older versions, or with a new ABI which is conformant to the C++11 standard.
LyX did not build if the latter was used:
https://kojipkgs.fedoraproject.org//work/tasks/1267/9651267/build.log
This is now fixed by detecting the ABI version and disabling the wrong forward
declarations. At the same time, STD_STRING_USES_COW is switched off for the
C++11 ABI version, because the std::basic_string implementation is now C++11
conformant. Since the GNU libstdc++ can also used by other compilers such as
clang, we must not test for the compiler version.
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.
The old detection did only work if CFLAGS contained -std=c++11, since ciso646
was only included for __cplusplus > 199711.
Thanks to Koernel for the cmake part.
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.
Handle option "LYX_DEVEL_VERSION" to add the preprocesor definition of DEVEL_VERSION
The effect should be alike the configure parameter "--enable-build-type=dev"
Expanded parsing of configure.ac to get also the BUGREPORT value
Added creation of red hat- and debian-packages
Kornel
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28483 a592a061-630c-0410-9148-cb99ea01b6c8
development/cmake/CMakeLists.txt
Use lowercase for PACKAGE iff (USE_POSIX_PACKAGING)
Set correct PROGRAM_SUFFIX,
CMakeLists.txt in subdirectories depend now on it
Define PACKAGE_BASE depending on PACKAGING type
for use in subsequent directories
development/cmake/config.h.cmake
typo: PPROGRAM_SUFFIX --> PROGRAM_SUFFIX
development/cmake/src/tex2lyx/CMakeLists.txt +
+ development/cmake/src/CMakeLists.txt +
+ development/cmake/src/client/CMakeLists.txt +
+ development/cmake/man/CMakeLists.txt
added desired version-info to executables and manuals
tex2lyx, lyx, lyxclient respectivelly
Kornel
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28438 a592a061-630c-0410-9148-cb99ea01b6c8
New files:
Directories:
development/cmake/po
development/cmake/man
Files:
development/cmake/po/CMakeLists.txt
Creates lyx.pot and *.gmo-files;
Installs ${_lang} as ${LYX_ABS_INSTALLED_DATADIR}/${LYX_LOCALEDIR}/${_lang}/LC_MESSAGES/lyx.mo
development/cmake/man/CMakeLists.txt
Handling of lyx-manuals.
development/cmake/modules/FindLyXGettext.cmake
Original: (GNU) FindGettext.cmake
Changed the installation subdirectory of .gmo-files.
Previously installing into "/usr/local/share/lyx2.0" led
to e.g. /usr/local/share/lyx2.0/share/locale/de/LC_MESSAGES/lyx.mo
now /usr/local/share/lyx2.0/locale/de/LC_MESSAGES/lyx.mo
Changes:
development/cmake/Install.cmake
macro lyx_install _parent_src_dir
searches now through directories specified as simple regular expression.
Until now we had to specify explicitly each directory for each language.
Mode of the DESTINATION/lyx2lyx is now corect
Installation of the .gmo files
development/cmake/config.h.cmake:
Changed some #cmakedefine to #define, because config_file() did not
substitute the desired values in config.h.
Some typos corrected (TOP_SRCDIR -> TOP_SRC_DIR)
development/cmake/configCompiler.h.cmake
Removed doubly defined ENABLE_NLS, HAVE_LC_MESSAGES
Installation directory still hardcoded, users need to to set environment
variable LYX_LOCALEDIR to get the corect translations.
development/cmake/CMakeLists.txt
Setting correct values to LYX_ABS_INSTALLED_DATADIR,
LYX_ABS_INSTALLED_LOCALEDIR, LYX_ABS_TOP_SRCDIR.
Now the lyx-executable searches on the installed places for it's data,
so no need to set environment anymore.
New variable: LYX_LOCALEDIR. We need it later in FindLyXGettext.cmake,
because we cannot use the absolute path LYX_ABS_INSTALLED_LOCALEDIR.
(We need relative path when packaging to different root-directory).
Use of module FindLyXGettext.cmake: This is a modified version
of (GNU) FindGettext.cmake
Include the new development/cmake/po directory
Include the new development/cmake/man directory
development/cmake/po/CMakeLists.txt
Creation of lyx.pot and apropriate .gmo files
Creating lyx.pot file
I had to use perl to simulate the unix "cat" command. Maybe Jose can
write the corect statement in python
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27973 a592a061-630c-0410-9148-cb99ea01b6c8