* fix msys2 windows build so the windows apps support utf-8 file paths. * use windres to compile default-manifest.o * windres is in binutils. * stop modifying default-manifest.o * copy to stage0 * fix semicolon joining of lists in add_custom_target * undo changes to stage0 as per CR feedback. * fix makefile * fix: revert cmakelists.txt COMMAND_EXPAND_LISTS change * fix: msys2 dependencies * add unit test for decoding UTF-8 chars to prove "lean.exe" can read utf-8 encoded files where utf-8 is also used in the file name. * fix: utf-8 test by using windows-2022 * fix: do we really need cmake 3.11 or will 3.10 do? * nope, really does require cmake 11.
2.2 KiB
Lean for Windows
A native Lean binary for Windows can be generated using MSYS2. It is easy to install all dependencies, it produces native 64/32-binaries, and supports a C++14 compiler.
Installing dependencies
The official webpage of MSYS2 provides one-click installers.
Once installed, you should run the "MSYS2 MinGW 64-bit shell" from the start menu.
(The one that runs mingw64.exe)
Do not run "MSYS2 MSYS" instead!
MSYS2 has a package management system, pacman, which is used in Arch Linux.
Here are the commands to install all dependencies needed to compile Lean on your machine.
pacman -S make python mingw-w64-x86_64-cmake mingw-w64-x86_64-clang mingw-w64-x86_64-ccache git unzip diffutils binutils
You should now be able to run these commands:
gcc --version
cmake --version
Then follow the generic build instructions in the MSYS2
MinGW shell, using cmake ../.. -G "Unix Makefiles" instead of cmake ../... This ensures that cmake will call sh instead of cmd.exe
for script tasks.
Install lean
Follow the steps in Dev setup using
elan regarding installation of the
bits you just built. Note that in an msys2 environment elan-init.sh
reports you need to add %USERPROFILE%\.elan\bin to your path, but of
course in msys2 that needs to be a valid linux style path, like this:
export PATH="$PATH:/c/users/$USERNAME/.elan/bin"
Running
You can run lean --version to see if your binaries work.
If you want a version that can run independently of your MSYS install then you need to copy the following dependent DLL's from where ever they are installed in your MSYS setup:
- libgcc_s_seh-1.dll
- libstdc++-6.dll
- libgmp-10.dll
- libwinpthread-1.dll
The following linux command will do that:
cp $(ldd lean.exe | cut -f3 -d' ' | grep mingw) .
Trouble shooting
-bash: gcc: command not found
Make sure /mingw64/bin is in your PATH environment. If it is not then
check you launched the MSYS2 MinGW 64-bit shell from the start menu.
(The one that runs mingw64.exe).