####################################### Build - Windows ####################################### This page describes how to build the library under windows. Both MSVC compiler and MinGW are supported. MSVC (2017~2019) ***************** Supported Visual Studio versions are: * the latest Visual Studio 2019 (used in development) * Visual Studio 2017 used in `travis.ci ` for automated tests. MSVC install prerequisites ============================= Git is of course a prerequisite, if you don't have it you can download it from `git-scm.com `. Pre-compiled `versions of boost `_ for windows are available at SourceForge. Choose the version that matches the desired architecture (eg. for Visual Studio 2019 64 bit you can download `boost 1.71 msvc-14.2 `_ ) or if unsure download the full `boost_1_71_0-bin-msvc-all-32-64.7z `_ archive. With boost 1.71 it is recommended to download one of the `latest cmake `_ (>3.16). The version with Visual Studio 2019 isn't the most up to date. Checkout the code ================== Check out the code using git: .. NOTE:: This project has a submodule (the license generator). Remember to add the option `--recursive` to clone it. .. code-block:: console git clone --recursive https://github.com/open-license-manager/open-license-manager.git Compile and build (command line) ==================================== Open a command prompt in the folder where you checked out the library. Configure the library (windows x64): .. code-block:: console cd build cmake .. -G "Visual Studio 16 2019" -A x64 -DBOOST_ROOT="C:\local\boost" //(or where boost was installed) Configure the library (windows x86): For some configuration reason we're unable to build using x86 using visual studio generators. We recommend to use Ninja build system. .. code-block:: console cd build "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 cmake .. -G "Ninja" -DBOOST_ROOT="C:\local\boost" //(or where boost was installed) Supported cmake definitions/options ======================================= Below a list of some useful cmake configurations: ============================== ============================================================================================== Definition name Description ============================== ============================================================================================== -DSTATIC_RUNTIME=1 link statically to the standard and runtime support libraries (compiler flag /MT) -DCMAKE_BUILD_TYPE=Release link to the release version of the boost libraries -DCMAKE_INSTALL_PREFIX=C:\.. folder where to install libraries and headers -DBOOST_ROOT=C:\.. folder where boost is installed. If cmake is reporting boost not found consider updating cmake. ============================== ============================================================================================== Compile and test .. code-block:: console cmake --build . --target install --config Release ctest -C Release Compile and build (Visual studio 2019) ========================================== Visual Studio 2019 integrates with CMake (the process requires a couple of restarts and it's all but "fluid"). After opening the project "as a CMake project" a CMakeSettings.json should appear in the base folder. Edit the file as below (the file is for an x86 architecture). In a special way: * remove the "-v" switch from "buildCommandArgs" * add the variable BOOST_ROOT pointing to where your boost installation is. Restart, delete and rebuild the cache a couple of time, until Visual Studio understands the new options (tested with Visual Studio 2019 16.5.1). .. literalinclude:: CMakeSettings.json :language: json MINGW ***************** .. TODO:: MINGW documentation need to be done. Refer to file .travis.yml to see a list of commands for windows-mingw