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
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
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
Installation of executabe lyx2lyx
creation and installation of lyx2lyx_version.py
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28241 a592a061-630c-0410-9148-cb99ea01b6c8
development/cmake/Install.cmake
Added directory scripts
Corrected handling of directories. There may well be empty _dir_list.
(if we search for e.g. lib/doc/en/clipart, there is nothing)
development/cmake/lyx2lyx/CMakeLists.txt
most ot the code moved to development/cmake/lyx2lyx/CMakeLists.txt,
we include now this module.
development/cmake/CMakeLists.txt
add the subdirectory "scripts"
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28100 a592a061-630c-0410-9148-cb99ea01b6c8
New files:
development/cmake/doc/ReplaceValues.pl
perl-script to substitute words (defined in the cmd-line) with their actual
values
development/cmake/doc/CMakefiles.txt
convert and install files .lyx and .txt-files from the lib/doc-directory
development/cmake/src/client/CMakeLists.txt
create and install lyxclient
Changed:
development/cmake/Install.cmake
include the new doc-directory
remove installation of .lyx from the doc-directory. Will be installed in
development/cmake/doc/CMakefiles.txt
development/cmake/Install.cmake
changed macro lyx_install() to not insert '.' into the globbing-expression
automatically. We need sometimes also dotless files.
development/cmake/src/CMakefiles.txt
Added subdirectory client to create and install lyxclient on unix-like systems
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27978 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
by default read from lib/commands/default.def
A .def file allows to define a command with
\define "Name" "lfun"
where Name is the name of the new command and lfun is the code
to be executed.
\def_file "FileName"
allows to include another .def file.
The implementation of CmdDef is similar to KeyMap, i.e. there is
one instance created in the LyX.cpp that reads the .def file, holds
a list containing all definitions, and supplies access methods.
LFUN_CALL: The new lfun is used to execute a command definition, e.g.
call Name
If a toolbar item has the associated action "call Name" then the image
lib/images/commands/Name.png is used for the button.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21093 a592a061-630c-0410-9148-cb99ea01b6c8