From d70c4e356cd999a24620b6565c3e4f8a24514ba5 Mon Sep 17 00:00:00 2001 From: Jackie Ng Date: Tue, 7 May 2019 03:44:27 +1000 Subject: [gdal] Fix linker error with static libpng (#6305) * When linking gdal with static libpng, it fails because the libpng vcpkg port has references to zlib symbols that aren't present in the internal copy of zlib that gdal builds/links against. To fix this, have the gdal port pull in a vcpkg zlib port as another dependency and have it build/link against that instead. * [gdal]: Bump portfile version as master is already at 2.4.1-2 --- ports/gdal/CONTROL | 4 ++-- ports/gdal/portfile.cmake | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ports/gdal/CONTROL b/ports/gdal/CONTROL index 9169b8344..233c5145f 100644 --- a/ports/gdal/CONTROL +++ b/ports/gdal/CONTROL @@ -1,7 +1,7 @@ Source: gdal -Version: 2.4.1-1 +Version: 2.4.1-3 Description: The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data. -Build-Depends: proj, libpng, geos, sqlite3, curl, expat, libpq, openjpeg, libwebp, libxml2, liblzma, netcdf-c, hdf5 +Build-Depends: proj, libpng, geos, sqlite3, curl, expat, libpq, openjpeg, libwebp, libxml2, liblzma, netcdf-c, hdf5, zlib Feature: mysql-libmariadb Build-Depends: libmariadb diff --git a/ports/gdal/portfile.cmake b/ports/gdal/portfile.cmake index b62faf149..1db028ef9 100644 --- a/ports/gdal/portfile.cmake +++ b/ports/gdal/portfile.cmake @@ -66,6 +66,11 @@ file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PNG_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libpng16.lib" PNG_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.lib" PNG_LIBRARY_DBG) +# Setup zlib libraries + include path +file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" ZLIB_INCLUDE_DIR) +file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/zlib.lib" ZLIB_LIBRARY_REL) +file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/zlibd.lib" ZLIB_LIBRARY_DBG) + # Setup geos libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" GEOS_INCLUDE_DIR) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") @@ -163,6 +168,8 @@ list(APPEND NMAKE_OPTIONS LIBXML2_INC=-I${XML2_INCLUDE_DIR} PNG_EXTERNAL_LIB=1 PNGDIR=${PNG_INCLUDE_DIR} + ZLIB_INC=-I${ZLIB_INCLUDE_DIR} + ZLIB_EXTERNAL_LIB=1 MSVC_VER=1900 ) @@ -196,6 +203,7 @@ list(APPEND NMAKE_OPTIONS_REL OPENJPEG_LIB=${OPENJPEG_LIBRARY_REL} WEBP_LIBS=${WEBP_LIBRARY_REL} LIBXML2_LIB=${XML2_LIBRARY_REL} + ZLIB_LIB=${ZLIB_LIBRARY_REL} ) if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Static Build does not like PG_LIB @@ -214,6 +222,7 @@ list(APPEND NMAKE_OPTIONS_DBG OPENJPEG_LIB=${OPENJPEG_LIBRARY_DBG} WEBP_LIBS=${WEBP_LIBRARY_DBG} LIBXML2_LIB=${XML2_LIBRARY_DBG} + ZLIB_LIB=${ZLIB_LIBRARY_DBG} DEBUG=1 ) if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") -- cgit v1.2.3