-Compiling LyX 1.5 for Win32
-===========================
-
-LyX 1.5 can be compiled with Microsoft Visual C++ 2005.
-
-Compiling
-=========
-
-1 Install MSVC 2005
-
- If you don't have MSVC 2005 installed, download and install the free
- Express edition from http://msdn.microsoft.com/vstudio/express/visualc/
-
- You also need to install the Platform SDK, see
- http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
-
-2 Install Python
-
- Get the latest Python 2.5 version at
- http://www.python.org/download/releases/2.5/
-
- Install in C:\Python25 and add this directory to the PATH environment
- variable (Start > Settings > Control Panel > System > Advanced >
- Environment Variables).
-
-3 Install SCons
-
- Download and install SCons 0.96.92 from http://www.scons.org/download.php
-
-4 Install the dependencies
-
- Download ftp://ftp.lyx.org/pub/lyx/contrib/lyx-windows-deps-msvc-qt4.zip
- and extract in the root directory of your LyX files (so you will get
- a directory called lyx-windows-deps-msvc next to the other directories
- like src, development etc.).
-
-5 Compile
-
- Run development\Win32\packaging\build_msvc.bat
+Compiling LyX 2.3 for Win32 and creating Windows installer
+==========================================================
+
+It's recommended to compile LyX using Microsoft Visual C++ 2015 and CMake.
+
+
+Compiling with Microsoft Visual C++
+===================================
+
+ These instructions assume the LyX source code is in C:\LyX\lyx-23
+ You can also use another directory if you prefer.
+
+1 Install MSVC 2015
+
+ If you don't have Visual C++ 2015 installed, get the free Community edition
+ from https://www.visualstudio.com/
+
+2 Install Qt
+
+ Download the latest Qt for Open Source C++ development on Windows (VS2015)
+ from https://qt.io/download-open-source/
+ Qt 5.6.x is recommended, but 5.7.x or later versions should work as well.
+ Make sure that the bin subfolder of the Qt installation (e.g.
+ C:\Qt\Qt5.6.1\5.6\msvc2015\bin) is listed in the PATH environment variable.
+
+3 Install Python
+
+ Install the latest Python 2.x or 3.x version from
+ https://www.python.org/downloads/
+
+4 Install CMake
+
+ Install the latest CMake from http://www.cmake.org
+
+5 Configure
+
+ - Open the "Developer Command Prompt for VS2015" from the
+ "Visual Studio 2015\Visual Studio Tools" subfolder of the start menu.
+ Run the CMake GUI from the command window that was opened.
+ Alternatively, you can create a .bat file that first contains the line
+ call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
+ and then calls the CMake GUI and use this .bat file to start CMake.
+ The MSVC 2015 command prompt or vcvarsall.bat set some environment
+ variables that are needed for CMake to find the compiler.
+
+ - Set the source code path to C:\LyX\lyx-23
+ Set the build path to C:\LyX\lyx-23-build
+ Click Configure and set the generator to Visual Studio 14.
+
+ - Enable LYX_DEPENDENCIES_DOWNLOAD and click Configure.
+ Pre-compiled dependencies will automatically be downloaded.
+
+ - Enable the LYX_INSTALL option, set CMAKE_INSTALL_PREFIX to
+ C:\LyX\lyx-23-install and click Configure.
+
+ - Check the Advanced checkbox.
+ Set GETTEXT_MSGFMT_EXECUTABLE to
+ C:\LyX\lyx-23-build\msvc2015-deps\lyx-windows-deps-msvc2015\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-23-build\lyx.sln
+ Compile the INSTALL project to get a LyX installation in
+ C:\LyX\lyx-23-install
+
+7 Copy dependencies
+
+ Copy
+ - C:\LyX\lyx-23-build\msvc2015-deps\lyx-windows-deps-msvc2015\bin
+ - C:\LyX\lyx-23-build\msvc2015-deps\lyx-windows-deps-msvc2015\imagemagick
+ - C:\LyX\lyx-23-build\msvc2015-deps\lyx-windows-deps-msvc2015\python
+ - C:\LyX\lyx-23-build\msvc2015-deps\lyx-windows-deps-msvc2015\ghostscript
+ - C:\LyX\lyx-23-build\msvc2015-deps\lyx-windows-deps-msvc2015\Resources
+ to C:\LyX\lyx-23-install
+
+ And copy from the Qt bin directory
+ (e.g. C:\Qt\bin)
+ QtCore5.dll
+ QtGui5.dll
+ QtCore5d.dll (if compiling Debug version)
+ QtGui5d.dll (if compiling Debug version)
+ to C:\LyX\lyx-23-install\bin
+
+8 Define path prefix
+
+ Add the following line to C:\LyX\lyx-23-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-23-install\bin\lyx.exe
+
Creating the Installer
======================
-
- To create an installer with LyX and all related components, download
- and install the latest NSIS from http://nsis.sourceforge.net
-
- Also download the InetLoad plug-in from
- http://nsis.sourceforge.net/InetLoad_plug-in and save InetLoad.dll in
- the NSIS Plugins directory.
-
- Open development\Win32\packaging\installer\setttings.user.nsh and modify
- the settings depending on your build environment.
-
- Finally, go to development\Win32\packaging\installer
- (in a normal Windows Explorer), right-click on lyx.nsi and click
- "Compile NSIS Script".
+
+ - 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
+