Code Monkey home page Code Monkey logo

vim-win32-build's Introduction

Build status

GVim/Vim Win32 builder

Generate installers and archives for x86 and AMD64 CPU architecture using Visual C++ 2019 build tools.

Inspired by https://github.com/vim/vim-win32-installer project and home grew scripts.

Recent versions use ninja.exe to parallel builds of packages dependencies and Vim. Build creates both platform version x86 and amd64 of Vim.

Tribute to Bram Moolenaar

Bram Moolenaar passed away 2023 August 3rd at the age of 62 Bram Moolenaar was author and maintainer of Vim for 30 years. A group of volunteers started caring for Vim project since.

Thank you Bram for all you did in this world! «Que la terre vous soit légère» (“May the earth rest lightly on you”).

Requirements

Git, Curl and 7-Zip

You can also use curl found inside Git installation in place of Windows native one.

Install 7-Zip version matching operating system architecture. On x86 system, installs 32bit version. On x64/AMD64 system, installs 64bit version.

MSYS2 install

In order to generate file uganda.nsis.txt, a suite of Unix tools is required. MSYS2 is expected to be installed at C:\msys64. Basic installation is enough, only bash, GNU make, uniq.exe and sed.exe are used while generating uganda.nsis.txt

This is heavy requirement for such a light task. TODO: embed sed.exe and do text transformation in dosbatch script.

Computer installation of Python 2.7 and 3.11

It is not possible to fetch and extract Python software just for building Vim. Python 2.7 is expected to be installed in C:\Python27. Python 3.11 is expected to be installed in C:\Program Files\Python311.

Microsoft Software

Visual Studio 2015 (until tag v8.1.0611)

Visual C++ 2015 compiler can be downloaded free of charge on this page: http://landinghub.visualstudio.com/visual-cpp-build-tools. This is the direct download link:

Visual Studio 2017 (until tag v8.2.3114)

Install Visual Studio 2017 Community edition. You need to create a (free) account at Microsoft.

Visual Studio 2019

Install Visual Studio 2019 Community edition. You need to create a (free) account at Microsoft.

Usage

Open a DOS prompt and go to project root. Run DOS prompt as normal user, not as administrator.

First create a virtualenv in .venv folder to further get runtime dependencies. Then install dependencies:

py -3 -m venv .venv
.venv\Scripts\activate.bat
pip install -r requirements.txt

Download archives and installers

download.bat

It can take a long depending of network connection speed.

Prepare GVim/Vim dependencies

List and version of GVim/Vim dependencies used for build and packages:

Racket 7.9 does not compile due to a missing include header in distribution.

To prepare all required software for building GVim/Vim at next step, run:

7z x downloads\ninja-win.zip ninja.exe
configure.bat
ninja packages

It is possible to only prepare a specific package:

  • UPX: ninja upx to unzip UPX for NSI package creation phase.
  • GetText: ninja winpty to extract GetText archive.
  • Lua: ninja lua_x86 lua_x64 to extract Lua archive.
  • Perl: ninja perl_x86 perl_x64 to extract and compile Perl.
  • Tcl: ninja tcl_x86 tcl_x64 to extract and compile Tcl.
  • Ruby: ninja ruby_x86 ruby_x64 to extract and compile Ruby.

Not that Ruby needs to be compiled using VisualStudio before being able to compile GVim/Vim. There is not ready to use archive for Ruby + VisualStudio. Ruby preparation is the longest of all tasks.

Build GVim/Vim and package installations

ninja gvim

You shall now have files gvim-9.1.xxx-ARCH.exe and gvim-9.1.xxx-ARCH.zip in root folder.

Patches

By default a patch to embed Lua DLL in final delivery is incorporated in this project.

You can add custom patches in patch directory.

vim-win32-build's People

Contributors

dependabot[bot] avatar lboulard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.