diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 38de1d3f90a0b10df5a89446ae8838d24b01748d..b0033b238396b612fcc7eaae8bdf6646c3a31cad 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -27,8 +27,12 @@ build windows:
     - Copy-Item 'C:/Windows/System32/ddraw.dll' 'windows/ddraw.dll'
     - Copy-Item 'C:/Windows/System32/nvcuda.dll' 'windows/nvcuda.dll'
   script:
-    - docker build --isolation process --memory 15G --pull -t "${CI_REGISTRY}/$(${CI_PROJECT_PATH}.toLower()):windows" windows
-    - docker push "${CI_REGISTRY}/$(${CI_PROJECT_PATH}.toLower()):windows"
+    - docker build --isolation process --memory 2G --pull -t "${CI_REGISTRY}/$(${CI_PROJECT_PATH}.toLower()):base-windows" windows/base
+    - docker push "${CI_REGISTRY}/$(${CI_PROJECT_PATH}.toLower()):base-windows"
+    - docker build --isolation process --memory 15G --pull -t "${CI_REGISTRY}/$(${CI_PROJECT_PATH}.toLower()):devel-windows" -f windows/devel/Dockerfile windows
+    - docker push "${CI_REGISTRY}/$(${CI_PROJECT_PATH}.toLower()):devel-windows"
+    - docker build --isolation process --memory 15G --pull -t "${CI_REGISTRY}/$(${CI_PROJECT_PATH}.toLower()):cuda-devel-windows" -f windows/cuda-devel/Dockerfile windows
+    - docker push "${CI_REGISTRY}/$(${CI_PROJECT_PATH}.toLower()):cuda-devel-windows"
   after_script:
     - docker logout "${CI_REGISTRY}"
 
diff --git a/windows/Dockerfile b/windows/Dockerfile
deleted file mode 100644
index 008e924d89f712e3331da5a6d05af42a12a2d1de..0000000000000000000000000000000000000000
--- a/windows/Dockerfile
+++ /dev/null
@@ -1,118 +0,0 @@
-FROM microsoft/dotnet-framework:3.5-runtime-windowsservercore-ltsc2016
-
-SHELL ["powershell", "-NoProfile", "-ExecutionPolicy Bypass", "-Command", "$ErrorActionPreference = 'Stop';"]
-
-RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
-    Invoke-Expression ((New-Object Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')); \
-    choco install -y visualstudio2017buildtools; \
-    choco install -y visualstudio2017-workload-vctools; \
-    Start-Process "\"C:/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe\"" -NoNewWindow -Wait -ArgumentList 'modify --installPath \"C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools\" --quiet --norestart --remove Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Tools.14.13 --add Microsoft.VisualStudio.Component.VC.Tools.14.15 --add Microsoft.VisualStudio.Component.VC.ATL'; \
-    choco install -y cmake --version 3.13.1 --installargs "ADD_CMAKE_TO_PATH=System"; \
-    choco install -y \
-        git \
-        curl \
-        7zip \
-        wixtoolset; \
-    (New-Object Net.WebClient).DownloadFile('https://github.com/Kitware/ninja/releases/download/v1.8.2.g972a7.kitware.dyndep-1/ninja-1.8.2.g972a7.kitware.dyndep-1_i686-pc-windows-msvc.zip', 'C:/ninja.zip'); \
-    7z e C:/ninja.zip -oC:/ninja -y; \
-    Remove-Item -Force C:/ninja.zip; \
-    [Environment]::SetEnvironmentVariable('PATH', "$([Environment]::GetEnvironmentVariable('PATH', [EnvironmentVariableTarget]::Machine))" + ';C:/ninja', [EnvironmentVariableTarget]::Machine); \
-    choco install -y python --version 3.6.7; \
-    $env:PATH = "\"$([Environment]::GetEnvironmentVariable('PATH', [EnvironmentVariableTarget]::User));$([Environment]::GetEnvironmentVariable('PATH', [EnvironmentVariableTarget]::Machine))\""; \
-    python -m pip --no-cache-dir install --no-warn-script-location \
-        wheel \
-        twine
-COPY Library.ps1 C:/Library.ps1
-
-RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
-    (New-Object Net.WebClient).DownloadFile('https://developer.nvidia.com/compute/cuda/9.2/Prod2/network_installers2/cuda_9.2.148_win10_network', 'C:/cuda_9.2.148_win10_network.exe'); \
-    (New-Object Net.WebClient).DownloadFile('https://developer.nvidia.com/compute/cuda/9.2/Prod2/patches/1/cuda_9.2.148.1_windows', 'C:/cuda_9.2.148.1_windows.exe'); \
-    (New-Object Net.WebClient).DownloadFile('http://developer.download.nvidia.com/compute/redist/cudnn/v7.1.4/cudnn-9.2-windows10-x64-v7.1.zip', 'C:/cudnn-9.2-windows10-x64-v7.1.zip'); \
-    Start-Process C:/cuda_9.2.148_win10_network.exe -NoNewWindow -Wait -ArgumentList '-s nvcc_9.2 cublas_9.2 cublas_dev_9.2 cudart_9.2 cufft_9.2 cufft_dev_9.2 curand_9.2 curand_dev_9.2 cusolver_9.2 cusolver_dev_9.2 cusparse_9.2 cusparse_dev_9.2 npp_9.2 npp_dev_9.2 nvrtc_9.2 nvrtc_dev_9.2 nvml_dev_9.2'; \
-    Remove-Item -Force C:/cuda_9.2.148_win10_network.exe; \
-    Start-Process C:/cuda_9.2.148.1_windows.exe -NoNewWindow -Wait -ArgumentList '-s cublas_9.2 cublas_dev_9.2'; \
-    Remove-Item -Force C:/cuda_9.2.148.1_windows.exe; \
-    7z x C:/cudnn-9.2-windows10-x64-v7.1.zip; \
-    Copy-Item -Force -Recurse "./cuda/*" "$([Environment]::GetEnvironmentVariable('CUDA_PATH', [EnvironmentVariableTarget]::Machine))"; \
-    Remove-Item -Force -Recurse "./cuda"; \
-    Remove-Item -Force C:/cudnn-9.2-windows10-x64-v7.1.zip
-
-COPY qtifwsilent.qs C:/qtifwsilent.qs
-RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
-    (New-Object Net.WebClient).DownloadFile('https://download.qt.io/official_releases/qt/5.11/5.11.2/qt-opensource-windows-x86-5.11.2.exe', 'C:/qt.exe'); \
-    $env:QT_INSTALL_DIR = 'C:/Qt'; \
-    Start-Process C:/qt.exe -NoNewWindow -Wait -ArgumentList '--verbose --script C:/qtifwsilent.qs'; \
-    Remove-Item -Force C:/qtifwsilent.qs; \
-    Remove-Item -Force C:/qt.exe; \
-    [Environment]::SetEnvironmentVariable('Qt5_DIR', 'C:/Qt/5.11.2/msvc2017_64', [EnvironmentVariableTarget]::Machine); \
-    [Environment]::SetEnvironmentVariable('EGL_PLATFORM_DIR', 'C:/Qt/5.11.2/msvc2017_64/include/QtANGLE', [EnvironmentVariableTarget]::Machine)
-
-RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
-    (New-Object Net.WebClient).DownloadFile('https://www.baslerweb.com/fp-1535524585/media/downloads/software/pylon_software/Basler_pylon_5.1.0.12681.exe', 'C:/Basler_pylon_5.1.0.12681.exe'); \
-    Start-Process C:/Basler_pylon_5.1.0.12681.exe -NoNewWindow -Wait -ArgumentList '/quiet /install=SDKs /targetpath=C:/Pylon5'; \
-    Remove-Item -Force C:/Basler_pylon_5.1.0.12681.exe; \
-    [Environment]::SetEnvironmentVariable('Pylon5_DIR', 'C:/Pylon5/Development', [EnvironmentVariableTarget]::Machine);
-
-RUN $vcpkg_dir = 'C:/vcpkg'; \
-    git clone --depth=1 https://git.imp.fu-berlin.de/bioroboticslab/robofish/vcpkg.git $vcpkg_dir; \
-    cd $vcpkg_dir; \
-    git checkout 0b1594f6b4179a9a0b53235f76b61cd7fd98ece6; \
-    ./scripts/bootstrap.ps1; \
-    [Environment]::SetEnvironmentVariable('VCPKG_DIR', "\"$vcpkg_dir\"", [EnvironmentVariableTarget]::Machine);
-
-COPY opengl32.dll C:/Windows/System32/opengl32.dll
-COPY glu32.dll C:/Windows/System32/glu32.dll
-COPY ddraw.dll C:/Windows/System32/ddraw.dll
-COPY nvcuda.dll C:/Windows/System32/nvcuda.dll
-RUN . /Library.ps1; \
-    cd $env:VCPKG_DIR; \
-    $vcpkg_triplet = 'x64-windows-14.13'; \
-    Must-Run ./vcpkg install \
-        zlib:$vcpkg_triplet \
-        libepoxy[egl]:$vcpkg_triplet \
-        glm:$vcpkg_triplet \
-        cgal:$vcpkg_triplet \
-        hdf5:$vcpkg_triplet \
-        openblas:$vcpkg_triplet \
-        pybind11:$vcpkg_triplet \
-        boost-program-options:$vcpkg_triplet \
-        boost-bimap:$vcpkg_triplet \
-        boost-property-tree:$vcpkg_triplet \
-        jsoncpp:$vcpkg_triplet \
-        websocketpp:$vcpkg_triplet; \
-    Must-Run ./vcpkg install "\"opencv[ffmpeg,ximea,cuda,opengl]:$vcpkg_triplet\""; \
-    Must-Run ./vcpkg install "\"mxnet[cpp,opencv,cuda,cudnn]:$vcpkg_triplet\""; \
-    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/flang.dll ./installed/$vcpkg_triplet/bin/; \
-    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/flangrti.dll ./installed/$vcpkg_triplet/bin/; \
-    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/libomp.dll ./installed/$vcpkg_triplet/bin/; \
-    [Environment]::SetEnvironmentVariable('VCPKG_CUDA_TRIPLET', "\"$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \
-    [Environment]::SetEnvironmentVariable('VCPKG_CUDA_INSTALL_DIR', "\"$env:VCPKG_DIR/installed/$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \
-    $vcpkg_triplet = 'x64-windows-14.15'; \
-    Must-Run ./vcpkg install \
-        zlib:$vcpkg_triplet \
-        libepoxy[egl]:$vcpkg_triplet \
-        glm:$vcpkg_triplet \
-        cgal:$vcpkg_triplet \
-        hdf5:$vcpkg_triplet \
-        openblas:$vcpkg_triplet \
-        pybind11:$vcpkg_triplet \
-        boost-program-options:$vcpkg_triplet \
-        boost-bimap:$vcpkg_triplet \
-        boost-property-tree:$vcpkg_triplet \
-        jsoncpp:$vcpkg_triplet \
-        websocketpp:$vcpkg_triplet; \
-    Must-Run ./vcpkg install "\"opencv[ffmpeg,ximea,opengl]:$vcpkg_triplet\""; \
-    Must-Run ./vcpkg install "\"mxnet[cpp,opencv]:$vcpkg_triplet\""; \
-    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/flang.dll ./installed/$vcpkg_triplet/bin/; \
-    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/flangrti.dll ./installed/$vcpkg_triplet/bin/; \
-    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/libomp.dll ./installed/$vcpkg_triplet/bin/; \
-    [Environment]::SetEnvironmentVariable('VCPKG_TRIPLET', "\"$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \
-    [Environment]::SetEnvironmentVariable('VCPKG_INSTALL_DIR', "\"$env:VCPKG_DIR/installed/$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \
-    Remove-Item -Force -Recurse ./downloads; \
-    Remove-Item -Force -Recurse ./buildtrees; \
-    Remove-Item -Force -Recurse ./packages;
-
-RUN python -m pip --no-cache-dir install --no-warn-script-location \
-        numpy \
-        scipy \
-        pandas
diff --git a/windows/base/Dockerfile b/windows/base/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..89c27cfbd0d23fef1005fe6b26378c55f3af8cc5
--- /dev/null
+++ b/windows/base/Dockerfile
@@ -0,0 +1,45 @@
+FROM microsoft/dotnet-framework:3.5-runtime-windowsservercore-ltsc2016
+
+SHELL ["powershell", "-NoProfile", "-ExecutionPolicy Bypass", "-Command", "$ErrorActionPreference = 'Stop';"]
+
+RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+    Invoke-Expression ((New-Object Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')); \
+    choco install -y visualstudio2017buildtools; \
+    choco install -y visualstudio2017-workload-vctools; \
+    Start-Process "\"C:/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe\"" -NoNewWindow -Wait -ArgumentList 'modify --installPath \"C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools\" --quiet --norestart --remove Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Tools.14.16 --add Microsoft.VisualStudio.Component.VC.ATL'; \
+    choco install -y cmake --version 3.13.1 --installargs "ADD_CMAKE_TO_PATH=System"; \
+    choco install -y \
+        git \
+        curl \
+        7zip \
+        wixtoolset; \
+    (New-Object Net.WebClient).DownloadFile('https://github.com/Kitware/ninja/releases/download/v1.8.2.g972a7.kitware.dyndep-1/ninja-1.8.2.g972a7.kitware.dyndep-1_i686-pc-windows-msvc.zip', 'C:/ninja.zip'); \
+    7z e C:/ninja.zip -oC:/Windows/System32 -y; \
+    Remove-Item -Force C:/ninja.zip; \
+    choco install -y python --version 3.7.1; \
+    $env:PATH = "\"$([Environment]::GetEnvironmentVariable('PATH', [EnvironmentVariableTarget]::User));$([Environment]::GetEnvironmentVariable('PATH', [EnvironmentVariableTarget]::Machine))\""; \
+    python -m pip --no-cache-dir install --no-warn-script-location wheel
+COPY Library.ps1 C:/Library.ps1
+
+COPY qtifwsilent.qs C:/qtifwsilent.qs
+RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+    (New-Object Net.WebClient).DownloadFile('https://download.qt.io/official_releases/qt/5.11/5.11.2/qt-opensource-windows-x86-5.11.2.exe', 'C:/qt.exe'); \
+    $env:QT_INSTALL_DIR = 'C:/Qt'; \
+    Start-Process C:/qt.exe -NoNewWindow -Wait -ArgumentList '--verbose --script C:/qtifwsilent.qs'; \
+    Remove-Item -Force C:/qtifwsilent.qs; \
+    Remove-Item -Force C:/qt.exe; \
+    [Environment]::SetEnvironmentVariable('Qt5_DIR', 'C:/Qt/5.11.2/msvc2017_64', [EnvironmentVariableTarget]::Machine); \
+    [Environment]::SetEnvironmentVariable('EGL_PLATFORM_DIR', 'C:/Qt/5.11.2/msvc2017_64/include/QtANGLE', [EnvironmentVariableTarget]::Machine)
+
+RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+    (New-Object Net.WebClient).DownloadFile('https://www.baslerweb.com/fp-1535524585/media/downloads/software/pylon_software/Basler_pylon_5.1.0.12681.exe', 'C:/Basler_pylon_5.1.0.12681.exe'); \
+    Start-Process C:/Basler_pylon_5.1.0.12681.exe -NoNewWindow -Wait -ArgumentList '/quiet /install=SDKs /targetpath=C:/Pylon5'; \
+    Remove-Item -Force C:/Basler_pylon_5.1.0.12681.exe; \
+    [Environment]::SetEnvironmentVariable('Pylon5_DIR', 'C:/Pylon5/Development', [EnvironmentVariableTarget]::Machine);
+
+RUN $vcpkg_dir = 'C:/vcpkg'; \
+    git clone --depth=1 https://git.imp.fu-berlin.de/bioroboticslab/robofish/vcpkg.git $vcpkg_dir; \
+    cd $vcpkg_dir; \
+    git checkout 0e00a8dfeb4f4a6497ccf32f65d76d32a398f142; \
+    ./scripts/bootstrap.ps1; \
+    [Environment]::SetEnvironmentVariable('VCPKG_DIR', "\"$vcpkg_dir\"", [EnvironmentVariableTarget]::Machine);
diff --git a/windows/Library.ps1 b/windows/base/Library.ps1
similarity index 100%
rename from windows/Library.ps1
rename to windows/base/Library.ps1
diff --git a/windows/qtifwsilent.qs b/windows/base/qtifwsilent.qs
similarity index 100%
rename from windows/qtifwsilent.qs
rename to windows/base/qtifwsilent.qs
diff --git a/windows/cuda-devel/Dockerfile b/windows/cuda-devel/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..f9f8b437c640b41cb11a5ea8b86be9069d59a3ae
--- /dev/null
+++ b/windows/cuda-devel/Dockerfile
@@ -0,0 +1,45 @@
+FROM git.imp.fu-berlin.de:5000/bioroboticslab/robofish/docker:base-windows
+
+RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+    (New-Object Net.WebClient).DownloadFile('https://developer.nvidia.com/compute/cuda/9.2/Prod2/network_installers2/cuda_9.2.148_win10_network', 'C:/cuda_9.2.148_win10_network.exe'); \
+    (New-Object Net.WebClient).DownloadFile('https://developer.nvidia.com/compute/cuda/9.2/Prod2/patches/1/cuda_9.2.148.1_windows', 'C:/cuda_9.2.148.1_windows.exe'); \
+    (New-Object Net.WebClient).DownloadFile('http://developer.download.nvidia.com/compute/redist/cudnn/v7.1.4/cudnn-9.2-windows10-x64-v7.1.zip', 'C:/cudnn-9.2-windows10-x64-v7.1.zip'); \
+    Start-Process C:/cuda_9.2.148_win10_network.exe -NoNewWindow -Wait -ArgumentList '-s nvcc_9.2 cublas_9.2 cublas_dev_9.2 cudart_9.2 cufft_9.2 cufft_dev_9.2 curand_9.2 curand_dev_9.2 cusolver_9.2 cusolver_dev_9.2 cusparse_9.2 cusparse_dev_9.2 npp_9.2 npp_dev_9.2 nvrtc_9.2 nvrtc_dev_9.2 nvml_dev_9.2'; \
+    Remove-Item -Force C:/cuda_9.2.148_win10_network.exe; \
+    Start-Process C:/cuda_9.2.148.1_windows.exe -NoNewWindow -Wait -ArgumentList '-s cublas_9.2 cublas_dev_9.2'; \
+    Remove-Item -Force C:/cuda_9.2.148.1_windows.exe; \
+    7z x C:/cudnn-9.2-windows10-x64-v7.1.zip; \
+    Copy-Item -Force -Recurse "./cuda/*" "$([Environment]::GetEnvironmentVariable('CUDA_PATH', [EnvironmentVariableTarget]::Machine))"; \
+    Remove-Item -Force -Recurse "./cuda"; \
+    Remove-Item -Force C:/cudnn-9.2-windows10-x64-v7.1.zip
+
+COPY opengl32.dll C:/Windows/System32/opengl32.dll
+COPY glu32.dll C:/Windows/System32/glu32.dll
+COPY ddraw.dll C:/Windows/System32/ddraw.dll
+COPY nvcuda.dll C:/Windows/System32/nvcuda.dll
+RUN . /Library.ps1; \
+    cd $env:VCPKG_DIR; \
+    $vcpkg_triplet = 'x64-windows-14.16'; \
+    Must-Run ./vcpkg install \
+        zlib:$vcpkg_triplet \
+        libepoxy[egl]:$vcpkg_triplet \
+        glm:$vcpkg_triplet \
+        cgal:$vcpkg_triplet \
+        hdf5:$vcpkg_triplet \
+        openblas:$vcpkg_triplet \
+        pybind11:$vcpkg_triplet \
+        boost-program-options:$vcpkg_triplet \
+        boost-bimap:$vcpkg_triplet \
+        boost-property-tree:$vcpkg_triplet \
+        jsoncpp:$vcpkg_triplet \
+        websocketpp:$vcpkg_triplet; \
+    Must-Run ./vcpkg install "\"opencv[cuda,ffmpeg,ximea,opengl,contrib,ipp,dnn]:$vcpkg_triplet\""; \
+    Must-Run ./vcpkg install "\"mxnet[cpp,opencv,cuda,cudnn]:$vcpkg_triplet\""; \
+    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/flang.dll ./installed/$vcpkg_triplet/bin/; \
+    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/flangrti.dll ./installed/$vcpkg_triplet/bin/; \
+    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/libomp.dll ./installed/$vcpkg_triplet/bin/; \
+    [Environment]::SetEnvironmentVariable('VCPKG_TRIPLET', "\"$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \
+    [Environment]::SetEnvironmentVariable('VCPKG_INSTALL_DIR', "\"$env:VCPKG_DIR/installed/$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \
+    Remove-Item -Force -Recurse ./downloads; \
+    Remove-Item -Force -Recurse ./buildtrees; \
+    Remove-Item -Force -Recurse ./packages;
diff --git a/windows/devel/Dockerfile b/windows/devel/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..5f639bbc164e9a4285cbd1fe18a3771d951061c1
--- /dev/null
+++ b/windows/devel/Dockerfile
@@ -0,0 +1,31 @@
+FROM git.imp.fu-berlin.de:5000/bioroboticslab/robofish/docker:base-windows
+
+COPY opengl32.dll C:/Windows/System32/opengl32.dll
+COPY glu32.dll C:/Windows/System32/glu32.dll
+COPY ddraw.dll C:/Windows/System32/ddraw.dll
+RUN . /Library.ps1; \
+    cd $env:VCPKG_DIR; \
+    $vcpkg_triplet = 'x64-windows-14.16'; \
+    Must-Run ./vcpkg install \
+        zlib:$vcpkg_triplet \
+        libepoxy[egl]:$vcpkg_triplet \
+        glm:$vcpkg_triplet \
+        cgal:$vcpkg_triplet \
+        hdf5:$vcpkg_triplet \
+        openblas:$vcpkg_triplet \
+        pybind11:$vcpkg_triplet \
+        boost-program-options:$vcpkg_triplet \
+        boost-bimap:$vcpkg_triplet \
+        boost-property-tree:$vcpkg_triplet \
+        jsoncpp:$vcpkg_triplet \
+        websocketpp:$vcpkg_triplet; \
+    Must-Run ./vcpkg install "\"opencv[ffmpeg,ximea,opengl,contrib,ipp,dnn]:$vcpkg_triplet\""; \
+    Must-Run ./vcpkg install "\"mxnet[cpp,opencv]:$vcpkg_triplet\""; \
+    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/flang.dll ./installed/$vcpkg_triplet/bin/; \
+    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/flangrti.dll ./installed/$vcpkg_triplet/bin/; \
+    Copy-Item ./downloads/tools/flang/5.0.0/Library/bin/libomp.dll ./installed/$vcpkg_triplet/bin/; \
+    [Environment]::SetEnvironmentVariable('VCPKG_TRIPLET', "\"$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \
+    [Environment]::SetEnvironmentVariable('VCPKG_INSTALL_DIR', "\"$env:VCPKG_DIR/installed/$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \
+    Remove-Item -Force -Recurse ./downloads; \
+    Remove-Item -Force -Recurse ./buildtrees; \
+    Remove-Item -Force -Recurse ./packages;