@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
```
+In case you are used to `vim`, start a new administrative Powershell and run `choco install -y vim`.
+
+
#### Visual Studio
Thanks to Microsoft they’ll now provide their Professional Edition of Visual Studio 2017
Icinga 2 requires the OpenSSL library. [Download](http://slproweb.com/products/Win32OpenSSL.html)
and install it into the default path.
+Install both, 32 and 64 bit variants.
+
Once asked for `Copy OpenSSLs DLLs to` select `The Windows system directory`. That way CMake/Visual Studio
will automatically detect them for builds and packaging.
Use `ssh://git@github.com/icinga/icinga2.git` for SSH clones, `https://github.com/icinga/icinga2.git` otherwise.
+#### Packages
+
+CMake uses CPack and NSIS to create the setup executable including all binaries and libraries
+in addition to setup dialogues and configuration. Therefore we’ll need to install [NSIS](http://nsis.sourceforge.net/Download)
+first.
+
+We also need to install the Windows Installer XML (WIX) toolset.
+
+```
+choco install -y wixtoolset
+```
+
#### CMake
Icinga 2 uses CMake to manage the build environment. You can generate the Visual Studio project files
cd %HOMEPATH%\source\repos
```
-Run CMake with the following command. This generates a new Visual Studio project file called `icinga2.sln`.
+Build Icinga with specific CMake variables. This generates a new Visual Studio project file called `icinga2.sln`.
You need to specify the previously installed component paths:
Tip: If you have previously opened a terminal, run `refreshenv` to re-read updated PATH variables.
-```
-cmake . -DCPACK_GENERATOR=WIX -DCMAKE_BUILD_TYPE=Debug -DBOOST_ROOT=C:\boost_1_69_0 -DBOOST_LIBRARYDIR=C:\boost_1_69_0\stage -DBISON_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison\tools\win_bison.exe -DFLEX_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison\tools\win_flex.exe -DICINGA2_WITH_MYSQL=OFF -DICINGA2_WITH_PGSQL=OFF -DICINGA2_UNITY_BUILD=OFF
-```
+##### Build Scripts
-Best is write a small batch/Powershell script which just executes these lines.
+Icinga provides the build scripts inside the Git repository.
-```
-@echo off
+Open a new Powershell and navigate into the cloned Git repository. Set
+specific environment variables and run the build scripts.
-cd icinga2
-mkdir debug
-cd debug
-del CMakeCache.txt
-
-cmake . -DCPACK_GENERATOR=WIX -DCMAKE_BUILD_TYPE=Debug -DBOOST_ROOT=C:\boost_1_69_0 -DBOOST_LIBRARYDIR=C:\boost_1_69_0\stage -DBISON_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison\tools\win_bison.exe -DFLEX_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison\tools\win_flex.exe -DICINGA2_WITH_MYSQL=OFF -DICINGA2_WITH_PGSQL=OFF -DICINGA2_UNITY_BUILD=OFF
+```
+cd %HOMEPATH%\source\repos
-cmake --build . --target PACKAGE --config Debug
+$env:ICINGA2_BUILDPATH='debug'
+$env:CMAKE_BUILD_TYPE='Debug'
+$env:OPENSSL_ROOT_DIR='C:\OpenSSL-Win64'
+$env:BOOST_ROOT='C:\boost_1_69_0'
+$env:BOOST_LIBRARYDIR='C:\boost_1_69_0\stage'
-cd ..
+.\tools\win32\configure.ps1
+.\tools\win32\build.ps1
+.\tools\win32\test.ps1
```
+> **Note**
+>
+> You may need to modify `configure.ps1` and
+> add a changed CMake variable for the installation
+> prefix: `-DCMAKE_INSTALL_PREFIX="C:\Program Files\Icinga2-build"`.
#### Icinga 2 in Visual Studio
#### Release Package
-CMake uses CPack and NSIS to create the setup executable including all binaries and libraries
-in addition to setup dialogues and configuration. Therefore we’ll need to install [NSIS](http://nsis.sourceforge.net/Download)
-first.
+This is part of the build process script already.
-We also need to install the Windows Installer XML (WIX) toolset.
-
-```
-choco install -y wixtoolset
-```
-
-Once completed open an administrative shell and navigate to your Visual Studio project.
-
-Let CMake to build a release package.
-
-```
-cd %HOMEPATH%\source\repos\icinga2
-cmake --build debug --target PACKAGE --config Release
-```
-
-Note: This will still use the debug builds. A yet more clean approach
-is to run CMake with changed release parameters beforehand and then
-re-run the release package builder.
-
-```
-cd %HOMEPATH%\source\repos\icinga2
-mkdir release
-cd release
-
-cmake .. -DCPACK_GENERATOR=WIX -DCMAKE_BUILD_TYPE=Release -DBOOST_ROOT=C:\boost_1_69_0 -DBISON_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison\tools\win_bison.exe -DFLEX_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison\tools\win_flex.exe -DICINGA2_WITH_MYSQL=OFF -DICINGA2_WITH_PGSQL=OFF -DICINGA2_UNITY_BUILD=OFF
-cd ..
+> **Note**
+>
+> You may need to modify `configure.ps1` and
+> add a changed CMake variable for the installation
+> prefix: `-DCMAKE_INSTALL_PREFIX="C:\Program Files\Icinga2-build"`.
-cmake --build release --target PACKAGE --config Release
```
+cd %HOMEPATH%\source\repos
-Again, put these lines into a batch/Powershell script and execute that.
+$env:ICINGA2_BUILDPATH='debug'
+$env:CMAKE_BUILD_TYPE='Debug'
+$env:OPENSSL_ROOT_DIR='C:\OpenSSL-Win64'
+$env:BOOST_ROOT='C:\boost_1_69_0'
+$env:BOOST_LIBRARYDIR='C:\boost_1_69_0\stage'
+.\tools\win32\configure.ps1
+.\tools\win32\build.ps1
+.\tools\win32\test.ps1
```
-@echo off
-cd icinga2
-
-mkdir release
-cd release
-
-del CMakeCache.txt
-; set gen=Visual Studio 15 2017 Win64
-set gen=Visual Studio 15 2017
-
-cmake .. -G "%gen%" -DCPACK_GENERATOR=WIX -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBOOST_ROOT=C:\boost_1_69_0 -DBOOST_LIBRARYDIR=C:\boost_1_69_0\stage -DBISON_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison\tools\win_bison.exe -DFLEX_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison\tools\win_flex.exe -DICINGA2_WITH_MYSQL=OFF -DICINGA2_WITH_PGSQL=OFF -DICINGA2_UNITY_BUILD=ON
-cd ..
-
-cmake --build release --target PACKAGE --config Release
-
-cd ..
-```
### Embedded Dev Env: Pi <a id="development-embedded-dev-env"></a>