Skip to content

Latest commit

 

History

History
143 lines (95 loc) · 3.64 KB

BUILD.rst

File metadata and controls

143 lines (95 loc) · 3.64 KB

How to build with MSVC

This is the recommended way of building openvpn-gui on Windows, which is also used when doing OpenVPN Windows releases.

Prerequisites

  • Visual Studio 2022 (see below for details)
  • CMake
  • vcpkg (add the environment variable VCPKG_ROOT which points to vcpkg installation)

Visual Studio Components

Having the Build Tools is enough, you do not need the actual IDE. In addition to the Microsoft.VisualStudio.Workload.VCTools workload, you might also need the following additional components dependending on which architectures you build for:

  • Microsoft.VisualStudio.Component.VC.ATL.Spectre
  • Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre
  • Microsoft.VisualStudio.Component.UWP.VC.ARM64
  • Microsoft.VisualStudio.Component.VC.Tools.ARM64
  • Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre
  • Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre
  • Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre
  • Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre

Build steps

Run inside MSVC command prompt:

c:\Temp\openvpn-gui>cmake -S . --preset x64
c:\Temp\openvpn-gui>cmake --build --preset x64-release

To see all presets, run:

C:\Users\lev\Projects\openvpn-gui>cmake -S c:\Users\lev\Projects\openvpn-gui --list-presets
Available configure presets:
"x64"
"arm64"
"x86"
"x64-ovpn3"
"arm64-ovpn3"
"x86-ovpn3"

You could also open CMake project from MSVC IDE and build from there.

How to build using Cygwin

Cygwin provides ports of many GNU/Linux tools and a POSIX API layer. This is the most complete way to get the GNU/Linux terminal feel under Windows. Cygwin has a setup that helps you install all the tools you need.

This document describes how to build openvpn-gui using Cygwin. It cross-compiles a native Windows executable, using the MinGW-w64 compilers that are available as packages in the Cygwin repository.

Required packages

To build openvpn-gui you need to have these packages installed, including their dependencies. You can install these packages using the standard setup.exe of Cygwin.

  • autoconf
  • automake
  • pkg-config
  • make
  • mingw64-x86_64-gcc-core

Build

To build use these commands:

autoreconf -iv
./configure --host=x86_64-w64-mingw32
make

32-bit or 64-bit

The above describes how to build the 64-bit version of openvpn-gui. If you want to build the 32-bit version, simply replace x86_64 with i686.

Both 32-bit and 64-bit version of Cygwin can build the 32-bit and 64-bit version of openvpn-gui.exe. Just install the packages you need and use the right --host option.

How to build using MSYS2

One-time preperation

Install MSYS2. Instructions and prerequisites can be found on the official website: https://msys2.github.io/

Once installed use the mingw64.exe provided by MSYS2.

Update the base MSYS2 system until no further updates are available using:

pacman -Syu

You may have to restart your MINGW64 prompt between those updates.

Now install the required development packages:

pacman -S base-devel mingw-w64-x86_64-{toolchain}

Build

You can build using these commands:

autoreconf -iv
./configure
make

32-bit or 64-bit

The above describes how to build the 64-bit version of openvpn-gui. If you want to build the 32-bit version, use the mingw32.exe and in the package names simply replace x86_64 with i686.