diff --git a/ext/zip/config.w32 b/ext/zip/config.w32 index 620283a1d85d..1dedfdb44650 100644 --- a/ext/zip/config.w32 +++ b/ext/zip/config.w32 @@ -3,11 +3,19 @@ ARG_ENABLE("zip", "ZIP support", "yes,shared"); if (PHP_ZIP != "no") { + var zipconf_dir; if (CHECK_HEADER_ADD_INCLUDE("zip.h", "CFLAGS_ZIP", PHP_PHP_BUILD + "\\include;" + PHP_EXTRA_INCLUDES) && - CHECK_HEADER_ADD_INCLUDE("zipconf.h", "CFLAGS_ZIP", PHP_PHP_BUILD + "\\lib\\libzip\\include;" + PHP_EXTRA_LIBS + "\\libzip\\include;" + PHP_ZIP) && + (zipconf_dir = CHECK_HEADER_ADD_INCLUDE("zipconf.h", "CFLAGS_ZIP", PHP_PHP_BUILD + "\\lib\\libzip\\include;" + PHP_EXTRA_LIBS + "\\libzip\\include;" + PHP_ZIP)) && (PHP_ZIP_SHARED && CHECK_LIB("libzip.lib", "zip", PHP_ZIP) || CHECK_LIB("libzip_a.lib", "zip", PHP_ZIP) && CHECK_LIB("libbz2_a.lib", "zip", PHP_ZIP) && CHECK_LIB("zlib_a.lib", "zip", PHP_ZIP) && CHECK_LIB("liblzma_a.lib", "zip", PHP_ZIP)) ) { + if (zipconf_dir === true) { + zipconf_dir = search_paths("zipconf.h", WshShell.Environment("Process").Item("INCLUDE"), null); + } + if (GREP_HEADER("zipconf.h", /^\s*#\s*define\s+LIBZIP_VERSION\s+"(?:1\.3\.1|1\.7\.0|1\.12(?:\.0)?)"/m, zipconf_dir)) { + ERROR("libzip 1.3.1, 1.7.0 and 1.12.0 are not supported. Please use another version."); + } + EXTENSION('zip', 'php_zip.c zip_stream.c'); if (get_define("LIBS_ZIP").match("libzip_a(?:_debug)?\.lib")) {