From f8524f9d5ed10bc906517872acf9a767ec406b8a Mon Sep 17 00:00:00 2001 From: "John W. Parent" <45471568+johnwparent@users.noreply.github.com> Date: Fri, 4 Apr 2025 20:58:05 -0400 Subject: [PATCH] libpng package: find correct zlib library on Windows (#49034) This explicitly specifies the correct library for zlib to CMake: CMake's find zlib looks for zlib before zdll. On Windows, zlib is the static lib, and zdll the import library. LibPNG only links to shared zlib, but was getting zlib from CMake on Windows, which was resulting in a linker failure. --- var/spack/repos/builtin/packages/libpng/package.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/var/spack/repos/builtin/packages/libpng/package.py b/var/spack/repos/builtin/packages/libpng/package.py index 04b07110d34..a8d2137694e 100644 --- a/var/spack/repos/builtin/packages/libpng/package.py +++ b/var/spack/repos/builtin/packages/libpng/package.py @@ -62,6 +62,9 @@ def cmake_args(self): self.define("PNG_STATIC", "static" in self.spec.variants["libs"].value), self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), ] + zlib_lib = self.spec["zlib-api"].libs + if zlib_lib: + args.append(self.define("ZLIB_LIBRARY", zlib_lib[0])) if self.spec.satisfies("platform=darwin target=aarch64:"): args.append("-DPNG_ARM_NEON=off") return args