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. 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 - Run the CMake GUI. - 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. - Set QT_QMAKE_EXECUTABLE to e.g. C:\Qt\qt-everywhere-opensource-src-5.6.1\bin\qmake.exe and Configure again. - 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 ====================== - 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