Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions compile_all.py
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,28 @@ def _install_python_requirements(self, requirements):
print(e.output.decode("utf-8", errors="replace"))
exit(1)

def build_opengl32sw(self, _: None):
"""Copy Mesa software OpenGL DLL into the LibPack on x64. On ARM64 the DLL is
unavailable from Qt's CDN. Does not actually build anything, just copies it."""
target = os.path.join(self.install_dir, "bin", "opengl32sw.dll")
if self.skip_existing and os.path.exists(target):
print(" opengl32sw.dll already in the LibPack, not re-copying")
return
if platform.machine() == "ARM64":
print(" NOTE: opengl32sw.dll is not available for Windows on ARM64 - Skipping")
return
matches = list(pathlib.Path(os.getcwd()).rglob("opengl32sw.dll"))
if not matches:
print(
f"ERROR: opengl32sw.dll not found under {os.getcwd()}. "
"The download or 7z extraction probably failed; check the URL "
"in config.json and retry."
)
exit(1)
os.makedirs(os.path.dirname(target), exist_ok=True)
shutil.copyfile(str(matches[0]), target)
print(f" Copied {matches[0]} to {target}")

def build_qt(self, options: dict):
"""Build Qt from source. Always builds qtbase, qtsvg, qtdeclarative, and qttools
against the LibPack's own zlib and libpng."""
Expand Down
5 changes: 5 additions & 0 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,11 @@
"git-ref": "v6.11.0",
"fallback-build-dir": "G:\\temp"
},
{
"name": "opengl32sw",
"url-x64": "https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt6_6110/qt6_6110_msvc2022_64/qt.qt6.6110.win64_msvc2022_64/6.11.0-0-202603180535opengl32sw-64-mesa_11_2_2-signed_sha256.7z",
"note": "Mesa-based software OpenGL fallback shipped by The Qt Company alongside their precompiled Qt binaries. Required at runtime on systems whose GPU or driver only exposes OpenGL 1.x (common on Windows VMs without GPU passthrough). Qt's from-source build does not produce this DLL, so the LibPack pulls the precompiled file directly from Qt's online installer CDN. The exact archive filename embeds a build timestamp and changes when Qt rebuilds the package; if the URL stops resolving, locate the current archive under the same Updates.xml path. No equivalent prebuilt is published for Windows on ARM64; ARM64 builds skip this entry entirely (see build_opengl32sw)."
},
{
"name":"bzip2",
"git-repo":"https://gitlab.com/bzip2/bzip2.git",
Expand Down
2 changes: 1 addition & 1 deletion create_libpack.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ def fetch_remote_data(config: dict, skip_existing: bool = False):
download(item["name"], item["url"])
elif "url-ARM64" in item and platform.machine() == "ARM64":
download(item["name"], item["url-ARM64"])
elif "url-x64" in item:
elif "url-x64" in item and platform.machine() == "AMD64":
download(item["name"], item["url-x64"])
else:
# Just make the directory, presumably later code will know what to do
Expand Down
Loading