|
|
|
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``.
|