You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openvpn-gui/BUILD.rst

144 lines
3.6 KiB

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:
.. code-block::
c:\Temp\openvpn-gui>cmake -S . --preset x64
c:\Temp\openvpn-gui>cmake --build --preset x64-release
To see all presets, run:
.. code-block::
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:
.. code-block:: bash
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:
.. code-block:: bash
pacman -Syu
You may have to restart your MINGW64 prompt between those updates.
Now install the required development packages:
.. code-block:: bash
pacman -S base-devel mingw-w64-x86_64-{toolchain}
Build
-----
You can build using these commands:
.. code-block:: bash
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``.