diff --git a/setup.py b/setup.py index 2d02cf129ca..d8a356df030 100644 --- a/setup.py +++ b/setup.py @@ -932,6 +932,8 @@ def build_extensions(self) -> None: defs.append(("HAVE_LIBZ", None)) if feature.get("imagequant"): libs.append(feature.get("imagequant")) + if sys.platform == "win32": + libs.extend(["ws2_32", "userenv", "ntdll"]) defs.append(("HAVE_LIBIMAGEQUANT", None)) if feature.get("xcb"): libs.append(feature.get("xcb")) diff --git a/winbuild/README.md b/winbuild/README.md index 50ad0a895d2..5d0e0cc3862 100644 --- a/winbuild/README.md +++ b/winbuild/README.md @@ -11,6 +11,7 @@ For more extensive info, see the [Windows build instructions](build.rst). * Requires Microsoft Visual Studio 2017 or newer with C++ component. * Requires NASM for libjpeg-turbo, a required dependency when using this script. * Requires CMake 3.15 or newer (available as Visual Studio component). +* Requires Rust for libimagequant; skip it with `--no-imagequant`. * Tested on Windows Server 2025 and 2022 with Visual Studio 2022 Enterprise (GitHub Actions). diff --git a/winbuild/build.rst b/winbuild/build.rst index 9be9847e728..88cc90ebb43 100644 --- a/winbuild/build.rst +++ b/winbuild/build.rst @@ -29,6 +29,9 @@ Download and install: * x86/AMD64: `Netwide Assembler (NASM) `_ +* libimagequant: `Rust `_ + (optional, use ``--no-imagequant`` if not available) + Any version of Visual Studio 2017 or newer should be supported, including Visual Studio 2017 Community, or Build Tools for Visual Studio 2019. diff --git a/winbuild/build_prepare.py b/winbuild/build_prepare.py index 2e8b3b82643..069cd355356 100644 --- a/winbuild/build_prepare.py +++ b/winbuild/build_prepare.py @@ -322,15 +322,19 @@ def cmd_msbuild( "libs": [r"bin\*.lib"], }, "libimagequant": { - "url": "https://github.com/ImageOptim/libimagequant/archive/{V['libimagequant']}.tar.gz", + "url": f"https://github.com/ImageOptim/libimagequant/archive/{V['libimagequant']}.tar.gz", "filename": f"libimagequant-{V['libimagequant']}.tar.gz", "license": "COPYRIGHT", "build": [ cmd_cd("imagequant-sys"), "cargo build --release", + cmd_copy( + r"..\target\release\imagequant_sys.lib", + "imagequant.lib", + ), ], "headers": ["libimagequant.h"], - "libs": [r"..\target\release\imagequant_sys.lib"], + "libs": ["imagequant.lib"], }, "harfbuzz": { "url": f"https://github.com/harfbuzz/harfbuzz/releases/download/{V['harfbuzz']}/FILENAME",