lyx_mirror/INSTALL.Win32
Georg Baum 78d6c2f331 Describe cross-compilation with MXE
MXE is really a great project: It provides a cross-compilation environment
for compiling windows binaries using mingw from any unix system, and includes
lots of prepackaged libraries. The latter distinguishes it from the mingw
cross-compilers packaged with some linux distros such as debian.

I was even able to run the resulting lyx.exe using wine!
2016-05-29 17:55:44 -04:00

152 lines
5.2 KiB
Plaintext

Compiling LyX 2.2 for Win32 and creating Windows installer
==========================================================
It's recommended to compile LyX using Microsoft Visual C++ 2010 and CMake.
Pre-compiled packages with dependencies are provided for this environment.
Compiling with Microsoft Visual C++
===================================
These instructions assume the LyX source code is in C:\LyX\lyx-21
You can also use another directory if you prefer.
1 Install MSVC 2010
If you don't have Visual C++ 2010 installed, get the free Express edition from
http://www.microsoft.com/express/Downloads/
(All dependencies are linked against the MSVC 2010 runtime and won't work in
combination with MSVC 2008. You'll get crashes and other unexpected issues.)
2 Install Qt
Download the latest Qt for Open Source C++ development on Windows (VS2010)
from http://qt-project.org/downloads
3 Install Python
Install the latest Python 2.x version (not Python 3.x !) from
http://www.python.org/download/
4 Install CMake
Install the latest CMake from http://www.cmake.org
5 Configure
- Run the CMake GUI.
- Set the source code path to C:\LyX\lyx-21
Set the build path to C:\LyX\lyx-21-build
Click Configure and set the generator to Visual Studio 10.
- Enable LYX_DEPENDENCIES_DOWNLOAD and click Configure.
Pre-compiled dependencies will automatically be downloaded.
- Set QT_QMAKE_EXECUTABLE to e.g.
C:\Qt\qt-everywhere-opensource-src-4.8.4\bin\qmake.exe
and Configure again.
- Enable the LYX_INSTALL option, set CMAKE_INSTALL_PREFIX to
C:\LyX\lyx-21-install and click Configure.
- Check the Advanced checkbox.
Set GETTEXT_MSGFMT_EXECUTABLE to
C:\LyX\lyx-21-build\msvc2010-deps\deps20\gettext-tools\msgfmt.exe,
and do the same for the other gettext tools.
- Click Generate.
6 Compile
A Microsoft Visual C++ solution should have been generated at
C:\LyX\lyx-21-build\lyx.sln
Compile the INSTALL project to get a LyX installation in
C:\LyX\lyx-21-install
7 Copy dependencies
Copy
- C:\LyX\lyx-21-build\msvc2010-deps\deps20\bin
- C:\LyX\lyx-21-build\msvc2010-deps\deps20\imagemagick
- C:\LyX\lyx-21-build\msvc2010-deps\deps20\python
- C:\LyX\lyx-21-build\msvc2010-deps\deps20\ghostscript
- C:\LyX\lyx-21-build\msvc2010-deps\deps20\Resources
to C:\LyX\lyx-21-install
And copy from the Qt bin directory
(e.g. C:\Qt\bin)
QtCore4.dll
QtGui4.dll
QtCore4d.dll (if compiling Debug version)
QtGui4d.dll (if compiling Debug version)
to C:\LyX\lyx-21-install\bin
8 Define path prefix
Add the following line to C:\LyX\lyx-21-install\Resources\lyxrc.dist,
so LyX will find the bundled tools such as Python, ImageMagick
and Ghostscript:
\path_prefix "$LyXDir\bin;$LyXDir\python;$LyXDir\imagemagick;$LyXDir\ghostscript"
You may also add the location of your LaTeX installation if it's not on the
system PATH, and the location of JabRef.
9 Start LyX
C:\LyX\lyx-21-install\bin\lyx.exe
Creating the Installer
======================
- Get NSIS from http://nsis.sourceforge.net
- In the LyX source directory, go to development\Win32\packaging\installer
- Copy the 3 dll-files from there to the DLL folder of the NSIS installation
- Check whether the file locations/paths in settings.nsh match your setup.
- Right-click on lyx.nsi and click "Compile NSIS Script".
Compiling with GCC with MinGW64 + MSYS2 Environment using autotools
===================================================================
1 Install MSYS2, MINGW64, Qt5+
https://wiki.qt.io/MSYS2
2 Install bc (Bench calculater), which autotools uses for some reason to compile LyX
pacman -S bc
3 Run the standard autotools install (Adapt paths and arguments accordingly)
./autogen.sh
./configure --without-x --enable-qt5 --disable-debug --enable-optimization --prefix=/mingw64
make
make install
Cross-Compiling on unix with MXE using autotools
=================================================
1 Install MXE: http://mxe.cc
You can either install from sources, the generic .tar binaries or debian .deb packages.
Installing the following .deb packages will drag in all needed dependencies:
mxe-x86-64-w64-mingw32.shared-file
mxe-x86-64-w64-mingw32.shared-gcc
mxe-x86-64-w64-mingw32.shared-libiconv
mxe-x86-64-w64-mingw32.shared-qtimageformats
mxe-x86-64-w64-mingw32.shared-qtsvg
mxe-x86-64-w64-mingw32.shared-qtwinextras
Of course you can also use the static and/or 32bit versions.
2 Run the standard autotools install (Adapt paths and arguments accordingly)
./autogen.sh
mkdir builddir-mingw
cd builddir-mingw
PATH="/usr/lib/mxe/usr/bin:$PATH" ../configure --host=x86-64-w64-mingw32.shared --with-qt-dir=/usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5 --enable-qt5 --with-included-boost --with-included-hunspell --with-included-mythes --disable-debug --enable-optimization --prefix=/mingw64
PATH="/usr/lib/mxe/usr/bin:$PATH" make
PATH="/usr/lib/mxe/usr/bin:$PATH" DESTDIR=/tmp/lyxinstall make install
This uses the paths from the 64bit shared MXE version installed from .deb packages.
3 If you want to run the resulting lyx.exe from the build directory using wine,
create symlinks for all needed .dlls:
cd builddir-mingw/src
ln -s /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/bin/*.dll .
ln -s /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin/*.dll .
wine64 lyx.exe