@@ -6,215 +6,3 @@ ADD *.dll C:/Windows/System32/
66# Add Arial font since Slint requires it, see
77# https://github.com/slint-ui/slint/issues/2556#issuecomment-2995413102
88ADD arial.ttf C:/Windows/Fonts/
9-
10- # Install Microsoft Visual C++ Redistributable for Visual Studio 2015-2022
11- ARG VCREDIST_URL="https://download.visualstudio.microsoft.com/download/pr/6ba404bb-6312-403e-83be-04b062914c98/1AD7988C17663CC742B01BEF1A6DF2ED1741173009579AD50A94434E54F56073/VC_redist.x64.exe"
12- RUN curl -o "C:/tmp.exe" -L "%VCREDIST_URL%" \
13- && C:/tmp.exe /quiet /norestart \
14- && del C:\t mp.exe
15-
16- # Install 7-Zip
17- # Attention: I observed issues with version 2409, thus better keep the old version
18- ARG 7ZIP_URL="https://7-zip.org/a/7z2301-x64.exe"
19- RUN curl -o "C:/tmp.exe" -L "%7ZIP_URL%" \
20- && C:/tmp.exe /S /D="C:/7zip" \
21- && setx PATH "%PATH%;C:\7 zip" \
22- && del C:\t mp.exe
23-
24- # Install Git
25- # Attention: Version 2.50 breaks our CI in a strange way!
26- ARG GIT_VERSION="2.44.0"
27- ARG GIT_URL="https://github.com/git-for-windows/git/releases/download/v$GIT_VERSION.windows.1/Git-$GIT_VERSION-64-bit.exe"
28- RUN curl -o "C:/tmp.exe" -L "%GIT_URL%" \
29- && C:/tmp.exe /VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS \
30- /COMPONENTS="gitlfs" /o:PathOption="CmdTools" /o:CRLFOption="LFOnly" /DIR:"C:/git" \
31- && del C:\t mp.exe
32-
33- # Install UV
34- ARG UV_URL="https://github.com/astral-sh/uv/releases/download/0.7.13/uv-x86_64-pc-windows-msvc.zip"
35- RUN curl -o "C:/tmp.zip" -L "%UV_URL%" \
36- && 7z x C:/tmp.zip -oC:/uv -bsp1 \
37- && setx PYTHONIOENCODING "UTF-8" \
38- && setx PATH "%PATH%;C:\u v" \
39- && del C:\t mp.zip
40-
41- # Install CMake
42- ARG CMAKE_VERSION="4.0.3"
43- ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-windows-x86_64.zip"
44- RUN curl -o "C:/tmp.zip" -L "%CMAKE_URL%" \
45- && 7z x C:/tmp.zip -oC:/ -bsp1 \
46- && rename cmake-%CMAKE_VERSION%-windows-x86_64 cmake \
47- && setx PATH "%PATH%;C:\c make\b in" \
48- && del C:\t mp.zip
49-
50- # Install Ninja
51- ARG NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-win.zip"
52- RUN curl -o "C:/tmp.zip" -L "%NINJA_URL%" \
53- && 7z x C:/tmp.zip -oC:/ninja -bsp1 \
54- && setx PATH "%PATH%;C:\n inja" \
55- && del C:\t mp.zip
56-
57- # Install CCache
58- ARG CCACHE_VERSION="4.11.3"
59- ARG CCACHE_URL="https://github.com/ccache/ccache/releases/download/v$CCACHE_VERSION/ccache-$CCACHE_VERSION-windows-x86_64.zip"
60- RUN curl -o "C:/tmp.zip" -L "%CCACHE_URL%" \
61- && 7z x C:/tmp.zip -oC:/ -bsp1 \
62- && rename ccache-%CCACHE_VERSION%-windows-x86_64 ccache \
63- && setx PATH "%PATH%;C:\c cache" \
64- && del C:\t mp.zip
65-
66- # Install MinGW
67- ARG MINGW_URL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_mingw90/qt.tools.win64_mingw900/9.0.0-1-202203221220mingw-w64-x86_64-11.2.0-release-posix-seh-rt_v9-rev3.7z"
68- RUN powershell -Command Invoke-WebRequest $env:MINGW_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
69- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
70- && setx PATH "%PATH%;C:\Q t\T ools\m ingw1120_64\b in" \
71- && del C:\t mp.7z
72-
73- # Install Rust
74- ARG RUST_VERSION="1.87.0"
75- ENV RUSTUP_HOME="C:\r ustup" \
76- CARGO_HOME="C:\c argo"
77- RUN curl -o "C:/rustup-init.exe" -L "https://win.rustup.rs/x86_64" \
78- && C:/rustup-init.exe -y -v \
79- --profile minimal \
80- --default-host x86_64-pc-windows-gnu \
81- --default-toolchain none \
82- && C:\c argo\b in\r ustup install %RUST_VERSION% \
83- && del C:\r ustup-init.exe
84-
85- # Install ZLib
86- ARG ZLIB_VERSION="1.3.1"
87- ARG ZLIB_URL="https://github.com/madler/zlib/releases/download/v$ZLIB_VERSION/zlib131.zip"
88- RUN curl -o "C:/tmp.zip" -L "%ZLIB_URL%" \
89- && 7z x C:/tmp.zip -oC:/ -bsp1 \
90- && cd C:/zlib-%ZLIB_VERSION% \
91- && cmake . -G "Ninja" -DCMAKE_INSTALL_PREFIX=C:/zlib \
92- && ninja \
93- && ninja install \
94- && setx ZLIB_ROOT "C:/zlib" \
95- && setx PATH "%PATH%;C:\z lib\b in" \
96- && cd .. \
97- && rmdir C:\z lib-%ZLIB_VERSION% /s /q \
98- && del C:\t mp.zip
99-
100- # Install OpenCascade
101- ARG OCC_VERSION="7_9_1"
102- ARG OCC_URL="https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V$OCC_VERSION.zip"
103- RUN curl -o "C:/tmp.zip" -L "%OCC_URL%" \
104- && 7z x C:/tmp.zip -oC:/ -bsp1 \
105- && cd C:\O CCT-%OCC_VERSION% \
106- && cmake . -G "Ninja" \
107- -DCMAKE_BUILD_TYPE=Release \
108- -DINSTALL_DIR=C:/OpenCascade \
109- -DBUILD_LIBRARY_TYPE=Shared \
110- -DBUILD_DOC_Overview=0 \
111- -DBUILD_MODULE_ApplicationFramework=0 \
112- -DBUILD_MODULE_DataExchange=1 \
113- -DBUILD_MODULE_Draw=0 \
114- -DBUILD_MODULE_FoundationClasses=0 \
115- -DBUILD_MODULE_ModelingAlgorithms=0 \
116- -DBUILD_MODULE_ModelingData=0 \
117- -DBUILD_MODULE_Visualization=0 \
118- -DUSE_DRACO=0 \
119- -DUSE_FREEIMAGE=0 \
120- -DUSE_FREETYPE=0 \
121- -DUSE_GLES2=0 \
122- -DUSE_OPENGL=0 \
123- -DUSE_OPENVR=0 \
124- -DUSE_RAPIDJSON=0 \
125- -DUSE_TBB=0 \
126- -DUSE_TK=0 \
127- -DUSE_VTK=0 \
128- && cmake --build . \
129- && cmake --install . \
130- && setx OpenCASCADE_DIR C:/OpenCascade/cmake \
131- && setx PATH "%PATH%;C:\O penCascade\w in64\g cc\b in" \
132- && cd .. \
133- && rmdir C:\O CCT-%OCC_VERSION% /s /q \
134- && del C:\t mp.zip
135-
136- # Install Qt Runtime DLLs
137- ARG QT_VERSION="6.6.2"
138- ARG QT_BASEURL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt6_662"
139- ARG QT_URL="${QT_BASEURL}/qt.qt6.662.win64_mingw/6.6.2-0-202402121135"
140- ARG QT_DLLS_URL="${QT_URL}MinGW-w64-x86_64-11.2.0-release-posix-seh-rt_v9-rev1-runtime.7z"
141- RUN powershell -Command Invoke-WebRequest $env:QT_DLLS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
142- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
143- && del C:\t mp.7z
144-
145- # Install Qt Tools
146- ARG QT_TOOLS_URL="${QT_URL}qttools-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
147- RUN powershell -Command Invoke-WebRequest $env:QT_TOOLS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
148- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
149- && setx PATH "%PATH%;C:\Q t\% QT_VERSION%\m ingw_64\b in" \
150- && del C:\t mp.7z
151-
152- # Install Qt Base
153- ARG QT_BASE_URL="${QT_URL}qtbase-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
154- ARG QT_PRI="C:\\ Qt\\ $QT_VERSION\\ mingw_64\\ mkspecs\\ qconfig.pri"
155- RUN powershell -Command Invoke-WebRequest $env:QT_BASE_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
156- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
157- && del C:\t mp.7z \
158- && powershell -Command "((Get-Content -path $env:QT_PRI -Raw) -replace 'Enterprise', 'OpenSource') | Set-Content -Path $env:QT_PRI" \
159- && powershell -Command "((Get-Content -path $env:QT_PRI -Raw) -replace 'licheck.exe', '') | Set-Content -Path $env:QT_PRI"
160-
161- # Install Qt SVG
162- ARG QT_SVG_URL="${QT_URL}qtsvg-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
163- RUN powershell -Command Invoke-WebRequest $env:QT_SVG_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
164- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
165- && del C:\t mp.7z
166-
167- # Install Qt Declarative
168- ARG QT_DECLARATIVE_URL="${QT_URL}qtdeclarative-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
169- RUN powershell -Command Invoke-WebRequest $env:QT_DECLARATIVE_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
170- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
171- && del C:\t mp.7z
172-
173- # Install Qt OpenGL (not sure if needed)
174- ARG QT_QT5OPENGL_URL="${QT_URL}opengl32sw-64-mesa_11_2_2-signed_sha256.7z"
175- RUN powershell -Command Invoke-WebRequest $env:QT_QT5OPENGL_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
176- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
177- && del C:\t mp.7z
178-
179- # Install Qt D3D (not sure if needed)
180- ARG QT_QT5D3D_URL="${QT_URL}d3dcompiler_47-x64.7z"
181- RUN powershell -Command Invoke-WebRequest $env:QT_QT5D3D_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
182- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
183- && del C:\t mp.7z
184-
185- # Install Qt Translations
186- ARG QT_TRANSLATIONS_URL="${QT_URL}qttranslations-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
187- RUN powershell -Command Invoke-WebRequest $env:QT_TRANSLATIONS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
188- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
189- && del C:\t mp.7z
190-
191- # Install Qt5 Compat
192- ARG QT_QT5COMPAT_URL="${QT_BASEURL}/qt.qt6.662.qt5compat.win64_mingw/6.6.2-0-202402121135qt5compat-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
193- RUN powershell -Command Invoke-WebRequest $env:QT_QT5COMPAT_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
194- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
195- && del C:\t mp.7z
196-
197- # Install Qt Image Formats Plugin
198- ARG QT_IMAGEFORMATS_URL="${QT_BASEURL}/qt.qt6.662.addons.qtimageformats.win64_mingw/6.6.2-0-202402121135qtimageformats-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
199- RUN powershell -Command Invoke-WebRequest $env:QT_IMAGEFORMATS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
200- && 7z x C:/tmp.7z -oC:/Qt -bsp1 \
201- && del C:\t mp.7z
202-
203- # Install Inno Setup
204- # Note: 6.4.3 emits some warnings when generating the LibrePCB installer,
205- # should be reviewed when upgrading
206- ARG INNOSETUP_URL="https://files.jrsoftware.org/is/6/innosetup-6.2.2.exe"
207- RUN curl -o "C:/tmp.exe" -L "%INNOSETUP_URL%" \
208- && C:/tmp.exe /NOICONS /VERYSILENT /DIR=C:\i nnosetup \
209- && setx PATH "%PATH%;C:\i nnosetup" \
210- && del C:\t mp.exe
211-
212- # Pre-install a Python version
213- RUN uv python install 3.13
214-
215- # Install OpenSSL (last one in Dockerfile because it should be updated regularly)
216- ARG OPENSSL_URL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_opensslv3_x64/qt.tools.opensslv3.win_x64/3.0.16-1openssl_3.0.16_prebuild_x64.7z"
217- RUN curl -o "C:/tmp.7z" -L "%OPENSSL_URL%" \
218- && 7z x C:/tmp.7z -oC:/Qt/Tools/OpenSSLv3 -bsp1 \
219- && setx OPENSSL_ROOT "C:/Qt/Tools/OpenSSLv3/Win_x64" \
220- && del C:\t mp.7z
0 commit comments