diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..29e23187f446630c8d7ab54dbced0703f66bb8f8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**/*.dll diff --git a/windows/base/Dockerfile b/windows/base/Dockerfile index 5d550013b7d37c432c432ae445b8900f5aed4ef7..00cb758482864ff934cf9fee0f164c521b576935 100644 --- a/windows/base/Dockerfile +++ b/windows/base/Dockerfile @@ -5,16 +5,21 @@ LABEL maintainer="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>" LABEL authors="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>" SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"] + RUN mkdir $PSHome/profile.d | out-null ADD powershell/Profile.ps1 /Windows/System32/WindowsPowerShell/v1.0/Profile.ps1 ADD powershell/00-Must-Run.ps1 /Windows/System32/WindowsPowerShell/v1.0/profile.d/00-Must-Run.ps1 + +RUN Set-ItemProperty -Path 'HKLM:/SYSTEM/CurrentControlSet/Control/FileSystem' -Name LongPathsEnabled -Type DWord -Value 1 + RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \ $env:chocolateyUseWindowsCompression = 'true'; \ Invoke-Expression ((New-Object Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')); \ Must-Run choco install -y dotnetfx --version 4.7.2.20180712; \ - Must-Run choco install -y cmake --version 3.19.4 --installargs "ADD_CMAKE_TO_PATH=System"; \ - Must-Run choco install -y kitware-ninja --version 1.8.2.8127911; \ + Must-Run choco install -y cmake --version 3.21.2 --installargs "ADD_CMAKE_TO_PATH=System"; \ + Must-Run choco install -y ninja --version 1.10.2; \ + Must-Run choco install -y llvm --version 12.0.1; \ Must-Run choco install -y \ git \ curl \ @@ -23,40 +28,37 @@ RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tl $env:PATH = "\"$([Environment]::GetEnvironmentVariable('PATH', [EnvironmentVariableTarget]::User));$([Environment]::GetEnvironmentVariable('PATH', [EnvironmentVariableTarget]::Machine))\""; \ Must-Run choco install -y visualstudio2017buildtools; \ Must-Run 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' + 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 --add Microsoft.VisualStudio.Component.VC.ATLMFC' ADD powershell/10-VSDevEnv.ps1 /Windows/System32/WindowsPowerShell/v1.0/profile.d/10-VSDevEnv.ps1 ADD powershell/20-MSVC-15.9.ps1 /Windows/System32/WindowsPowerShell/v1.0/profile.d/20-MSVC-15.9.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.12/5.12.10/qt-opensource-windows-x86-5.12.10.exe', 'C:/qt.exe'); \ - $env:QT_INSTALL_DIR = 'C:/ProgramData/Qt'; \ - Add-Content "\"/Windows/System32/drivers/etc/hosts\"" "\"`r`n127.0.0.1 iapi.qt.io`r`n::1 iapi.qt.io\""; \ - 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:/ProgramData/Qt/5.12.10/msvc2017_64', [EnvironmentVariableTarget]::Machine) - RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \ (New-Object Net.WebClient).DownloadFile('https://www.baslerweb.com/fp-1551786641/media/downloads/software/pylon_software/Basler_pylon_5.2.0.13457.exe', 'C:/Basler_pylon_5.2.0.13457.exe'); \ Start-Process C:/Basler_pylon_5.2.0.13457.exe -NoNewWindow -Wait -ArgumentList '/quiet /install=SDKs /targetpath=C:/ProgramData/Pylon5'; \ Remove-Item -Force C:/Basler_pylon_5.2.0.13457.exe; \ [Environment]::SetEnvironmentVariable('Pylon5_DIR', 'C:/ProgramData/Pylon5/Development', [EnvironmentVariableTarget]::Machine); +RUN $vcpkg_tool__dir = 'C:/ProgramData/vcpkg-tool'; \ + Must-Run git clone -b 2021-08-12 --single-branch https://git.imp.fu-berlin.de/bioroboticslab/auto/vcpkg-tool.git $vcpkg_tool__dir; \ + cd $vcpkg_tool__dir; \ + cmake -S '.' -B build -DCMAKE_C_COMPILER='/Program Files/LLVM/bin/clang.exe' -DCMAKE_CXX_COMPILER='/Program Files/LLVM/bin/clang++.exe' -G Ninja -DCMAKE_BUILD_TYPE=Release; \ + ninja -C build; \ + [Environment]::SetEnvironmentVariable('VCPKG_DISABLE_METRICS', '1', [EnvironmentVariableTarget]::Machine) + RUN $vcpkg_dir = 'C:/ProgramData/vcpkg'; \ Must-Run git clone -b bioroboticslab --single-branch https://git.imp.fu-berlin.de/bioroboticslab/auto/vcpkg.git $vcpkg_dir; \ cd $vcpkg_dir; \ - Must-Run git checkout 722e189e492fc1b769d2ebb1e9c65005bd2d699c; \ - ./scripts/bootstrap.ps1 -disableMetrics; \ - $vcpkg_target_triplet = 'x64-windows-14.16'; \ + Must-Run git checkout f6fb58f044b59f1bf87e7f4c4f244a0b3920ca1e; \ + cp 'C:/ProgramData/vcpkg-tool/build/vcpkg.exe' .; \ + $vcpkg_default_triplet = 'x64-windows-14.16'; \ [Environment]::SetEnvironmentVariable('VCPKG_DIR', "\"$vcpkg_dir\"", [EnvironmentVariableTarget]::Machine); \ - [Environment]::SetEnvironmentVariable('VCPKG_TARGET_TRIPLET', "\"$vcpkg_target_triplet\"", [EnvironmentVariableTarget]::Machine); \ + [Environment]::SetEnvironmentVariable('VCPKG_DEFAULT_TRIPLET', "\"$vcpkg_default_triplet\"", [EnvironmentVariableTarget]::Machine); \ [Environment]::SetEnvironmentVariable('CMAKE_TOOLCHAIN_FILE', "\"$vcpkg_dir/scripts/buildsystems/vcpkg.cmake\"", [EnvironmentVariableTarget]::Machine); \ - [Environment]::SetEnvironmentVariable('VCPKG_INSTALL_DIR', "\"$vcpkg_dir/installed/$vcpkg_target_triplet\"", [EnvironmentVariableTarget]::Machine); + [Environment]::SetEnvironmentVariable('VCPKG_INSTALL_DIR', "\"$vcpkg_dir/installed/$vcpkg_default_triplet\"", [EnvironmentVariableTarget]::Machine); ADD powershell/30-Vcpkg-CMake.ps1 /Windows/System32/WindowsPowerShell/v1.0/profile.d/30-Vcpkg-CMake.ps1 RUN cd $env:VCPKG_DIR; \ - Must-Run ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ + Must-Run ./vcpkg install \ libjpeg-turbo \ libwebp \ tiff \ @@ -64,8 +66,7 @@ RUN cd $env:VCPKG_DIR; \ "\"hdf5[cpp]\"" \ opengl \ protobuf \ - "\"xtensor[xsimd,tbb]\"" \ - ; \ + "\"qt5[core, 3d, webchannel, websockets, extras, xmlpatterns, sensors, serialport, speech, svg, tools, virtualkeyboard, networkauth, quickcontrols, quickcontrols2, script, scxml, activeqt, charts, datavis3d, declarative, gamepad, graphicaleffects, imageformats, location, multimedia, mqtt, webglplugin, webview, serialbus, translations, remoteobjects, connectivity]\""; \ Remove-Item -Force -Recurse ./downloads; \ Remove-Item -Force -Recurse ./buildtrees; \ Remove-Item -Force -Recurse ./packages; diff --git a/windows/base/powershell/30-Vcpkg-CMake.ps1 b/windows/base/powershell/30-Vcpkg-CMake.ps1 index 297b9cd5f39ea7ed10fcebbb4da395c74f2fd2e3..ae79b6729b0f722773937c3ba99d3c30e1dba54d 100644 --- a/windows/base/powershell/30-Vcpkg-CMake.ps1 +++ b/windows/base/powershell/30-Vcpkg-CMake.ps1 @@ -7,7 +7,7 @@ function Vcpkg-CMake { if ($args[0] -eq "--build") { Must-Run "/Program Files/CMake/bin/cmake.exe" $args } else { - Must-Run "/Program Files/CMake/bin/cmake.exe" '-DCMAKE_TOOLCHAIN_FILE=${venv:CMAKE_TOOLCHAIN_FILE}' "-DVCPKG_TARGET_TRIPLET=${env:VCPKG_TARGET_TRIPLET}" $args + Must-Run "/Program Files/CMake/bin/cmake.exe" '-DCMAKE_TOOLCHAIN_FILE=${venv:CMAKE_TOOLCHAIN_FILE}' "-DVCPKG_TARGET_TRIPLET=${env:VCPKG_DEFAULT_TRIPLET}" $args } } diff --git a/windows/cuda-devel/Dockerfile b/windows/cuda-devel/Dockerfile index 7ba4b5f3ae454a15a1e6a3d036750dadf6ff2238..aefff3aead5e6d8423d620ce25f46fe04581d043 100644 --- a/windows/cuda-devel/Dockerfile +++ b/windows/cuda-devel/Dockerfile @@ -6,16 +6,16 @@ LABEL authors="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>" RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \ (New-Object Net.WebClient).DownloadFile('https://developer.download.nvidia.com/compute/cuda/10.1/Prod/network_installers/cuda_10.1.243_win10_network.exe', 'C:/cuda_10.1.243_win10_network.exe'); \ - (New-Object Net.WebClient).DownloadFile('https://developer.download.nvidia.com/compute/redist/cudnn/v7.6.1/cudnn-10.1-windows10-x64-v7.6.1.34.zip', 'C:/cudnn-10.1-windows10-x64-v7.6.1.34.zip'); \ + (New-Object Net.WebClient).DownloadFile('https://developer.download.nvidia.com/compute/redist/cudnn/v7.6.5/cudnn-10.1-windows10-x64-v7.6.5.32.zip', 'C:/cudnn-10.1-windows10-x64-v7.6.5.32.zip'); \ Start-Process C:/cuda_10.1.243_win10_network.exe -NoNewWindow -Wait -ArgumentList '-s nvcc_10.1 cublas_10.1 cublas_dev_10.1 cudart_10.1 cufft_10.1 cufft_dev_10.1 curand_10.1 curand_dev_10.1 cusolver_10.1 cusolver_dev_10.1 cusparse_10.1 cusparse_dev_10.1 npp_10.1 npp_dev_10.1 nvrtc_10.1 nvrtc_dev_10.1 nvml_dev_10.1'; \ Remove-Item -Force C:/cuda_10.1.243_win10_network.exe; \ - 7z x C:/cudnn-10.1-windows10-x64-v7.6.1.34.zip; \ + 7z x C:/cudnn-10.1-windows10-x64-v7.6.5.32.zip; \ Copy-Item -Force -Recurse "./cuda/*" "$([Environment]::GetEnvironmentVariable('CUDA_PATH', [EnvironmentVariableTarget]::Machine))"; \ Remove-Item -Force -Recurse "./cuda"; \ - Remove-Item -Force C:/cudnn-10.1-windows10-x64-v7.6.1.34.zip + Remove-Item -Force C:/cudnn-10.1-windows10-x64-v7.6.5.32.zip RUN cd $env:VCPKG_DIR; \ - Must-Run ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ + Must-Run ./vcpkg install \ "\"ffmpeg[nvcodec,avresample]\"" \ "\"opencv4[cuda,ffmpeg,opengl,contrib,ipp,dnn]\""; \ Remove-Item -Force -Recurse ./downloads; \ @@ -27,14 +27,14 @@ 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 cd $env:VCPKG_DIR; \ - Must-Run ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ + Must-Run ./vcpkg install \ "\"mxnet[cpp,opencv,cuda,cudnn]\""; \ Remove-Item -Force -Recurse ./downloads; \ Remove-Item -Force -Recurse ./buildtrees; \ Remove-Item -Force -Recurse ./packages; RUN cd $env:VCPKG_DIR; \ - Must-Run ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ + Must-Run ./vcpkg install \ boost-program-options \ boost-property-tree \ boost-circular-buffer \ diff --git a/windows/devel/Dockerfile b/windows/devel/Dockerfile index c15b5e781b18cb5feca0d408c0becfc745c8c71f..3a933334e9399696830a798d47afa441e32014bf 100644 --- a/windows/devel/Dockerfile +++ b/windows/devel/Dockerfile @@ -5,7 +5,7 @@ LABEL maintainer="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>" LABEL authors="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>" RUN cd $env:VCPKG_DIR; \ - Must-Run ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ + Must-Run ./vcpkg install \ "\"ffmpeg[avresample]\"" \ "\"opencv4[ffmpeg,opengl,contrib,ipp,dnn]\""; \ Remove-Item -Force -Recurse ./downloads; \ @@ -16,14 +16,14 @@ 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 cd $env:VCPKG_DIR; \ - Must-Run ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ + Must-Run ./vcpkg install \ "\"mxnet[cpp,opencv]\""; \ Remove-Item -Force -Recurse ./downloads; \ Remove-Item -Force -Recurse ./buildtrees; \ Remove-Item -Force -Recurse ./packages; RUN cd $env:VCPKG_DIR; \ - Must-Run ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ + Must-Run ./vcpkg install \ boost-program-options \ boost-property-tree \ boost-circular-buffer \