[gdal] Update to 3.4.1 (#22370)

* Update gdal to 3.4.1

* Update versions

* Explicitly disable PCRE2

* Update versions

* Revise nmake dependency import and export

* Use pkg-config for spatialite with autotools

* Update versions
This commit is contained in:
Kai Pastor 2022-01-18 21:15:31 +01:00 committed by GitHub
parent fd30db7298
commit 837f3aecf1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 320 additions and 356 deletions

View File

@ -73,6 +73,18 @@ index 30cd613..43f1daf 100644
if test "$HAVE_SQLITE3" = "yes"; then
LIBS="$SQLITE3_LDFLAGS $LIBS"
@@ -1571,6 +1584,11 @@ HAVE_SPATIALITE=no
if test -z "$with_spatialite" -o "$with_spatialite" = "no"; then
AC_MSG_RESULT(disabled)
elif test "$with_spatialite" = "yes"; then
+ PKG_CHECK_MODULES([SPATIALITE],[spatialite >= 5],[HAVE_SPATIALITE=yes],AC_MSG_ERROR([vcpkg libspatialite not found]))
+ SPATIALITE_INC="$SPATIALITE_CFLAGS"
+ LIBS="$LIBS $SPATIALITE_LIBS"
+ ac_cv_lib_spatialite_spatialite_target_cpu=yes
+elif false; then
AC_CHECK_HEADERS(sqlite3.h)
if test "$ac_cv_header_sqlite3_h" = "yes"; then
AC_MSG_CHECKING([for spatialite.h in /usr/include or /usr/local/include])
@@ -1639,6 +1652,19 @@ dnl ---------------------------------------------------------------------------
AC_ARG_WITH(liblzma,[ --with-liblzma[=ARG] Include liblzma support (ARG=yes/no)],,)

View File

@ -1,254 +1,210 @@
macro(find_dependency_win)
# Setup libpng libraries + include path
set(PNG_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include")
set(PNG_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libpng16.lib" )
set(PNG_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.lib" )
# curl
x_vcpkg_pkgconfig_get_modules(PREFIX CURL MODULES --msvc-syntax libcurl INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "CURL_INC=${CURL_INCLUDE_DIRS_RELEASE}" "CURL_LIB=${CURL_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "CURL_INC=${CURL_INCLUDE_DIRS_DEBUG}" "CURL_LIB=${CURL_LIBS_DEBUG}")
# Setup zlib libraries + include path
set(ZLIB_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
set(ZLIB_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/zlib.lib" )
set(ZLIB_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/zlibd.lib" )
# expat
list(APPEND NMAKE_OPTIONS "EXPAT_DIR=YES")
x_vcpkg_pkgconfig_get_modules(PREFIX EXPAT MODULES --msvc-syntax expat INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "EXPAT_INCLUDE=${EXPAT_INCLUDE_DIRS}" "EXPAT_LIB=${EXPAT_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "EXPAT_INCLUDE=${EXPAT_INCLUDE_DIRS}" "EXPAT_LIB=${EXPAT_LIBS_DEBUG}")
# Setup geos libraries + include path
set(GEOS_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
set(GEOS_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/geos_c.lib ${CURRENT_INSTALLED_DIR}/lib/geos.lib" )
set(GEOS_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/geos_cd.lib ${CURRENT_INSTALLED_DIR}/debug/lib/geosd.lib" )
# Setup expat libraries + include path
set(EXPAT_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
set(EXPAT_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libexpatMD.lib" )
set(EXPAT_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libexpatdMD.lib" )
else()
set(EXPAT_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libexpat.lib" )
set(EXPAT_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libexpatd.lib" )
endif()
# Setup curl libraries + include path
set(CURL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libcurl.lib")
set(CURL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libcurl.lib" )
elseif(EXISTS "${CURRENT_INSTALLED_DIR}/lib/libcurl_imp.lib")
set(CURL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libcurl_imp.lib" )
endif()
if(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d.lib")
set(CURL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d.lib" )
elseif(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d_imp.lib")
set(CURL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libcurl-d_imp.lib" )
endif()
# geos
x_vcpkg_pkgconfig_get_modules(PREFIX GEOS MODULES --msvc-syntax geos INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "GEOS_CFLAGS=${GEOS_INCLUDE_DIRS_RELEASE} -DHAVE_GEOS" "GEOS_LIB=${GEOS_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "GEOS_CFLAGS=${GEOS_INCLUDE_DIRS_DEBUG} -DHAVE_GEOS" "GEOS_LIB=${GEOS_LIBS_DEBUG}")
# Setup sqlite3 libraries + include path
set(SQLITE_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
set(SQLITE_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/sqlite3.lib" )
set(SQLITE_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/sqlite3.lib" )
if ("postgresql" IN_LIST FEATURES)
# Setup PostgreSQL libraries + include path
set(PGSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
set(PGSQL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libpq.lib ${CURRENT_INSTALLED_DIR}/lib/libpgcommon.lib ${CURRENT_INSTALLED_DIR}/lib/libpgport.lib" )
set(PGSQL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libpq.lib ${CURRENT_INSTALLED_DIR}/debug/lib/libpgcommon.lib ${CURRENT_INSTALLED_DIR}/debug/lib/libpgport.lib")
endif()
# Setup OpenJPEG libraries + include path
set(OPENJPEG_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
set(OPENJPEG_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/openjp2.lib" )
set(OPENJPEG_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/openjp2.lib" )
# Setup WebP libraries + include path
set(WEBP_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
set(WEBP_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/webp.lib" )
set(WEBP_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/webpd.lib" )
# Setup libxml2 libraries + include path
set(XML2_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
set(XML2_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib" )
set(XML2_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib" )
# Setup liblzma libraries + include path
set(LZMA_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include" )
set(LZMA_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/lzma.lib" )
set(LZMA_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/lzmad.lib" )
# Setup openssl libraries path
set(OPENSSL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libcrypto.lib ${CURRENT_INSTALLED_DIR}/lib/libssl.lib" )
set(OPENSSL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libcrypto.lib ${CURRENT_INSTALLED_DIR}/debug/lib/libssl.lib" )
# Setup libiconv libraries path
set(ICONV_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/iconv.lib ${CURRENT_INSTALLED_DIR}/lib/charset.lib" )
set(ICONV_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/iconv.lib ${CURRENT_INSTALLED_DIR}/debug/lib/charset.lib" )
# Setup jpeg libraries
if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/jpeg.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" JPEG_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/jpeg.lib" JPEG_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/jpeg.lib" JPEG_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS JPEG_EXTERNAL_LIB=1)
list(APPEND NMAKE_OPTIONS JPEGDIR=${JPEG_INCLUDE})
list(APPEND NMAKE_OPTIONS_REL JPEG_LIB=${JPEG_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG JPEG_LIB=${JPEG_LIBRARY_DBG})
endif()
# Setup zstd libraries
if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/zstd.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" ZSTD_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/zstd.lib" ZSTD_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/zstdd.lib" ZSTD_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS ZSTD_CFLAGS=-I${ZSTD_INCLUDE})
list(APPEND NMAKE_OPTIONS_REL ZSTD_LIBS=${ZSTD_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG ZSTD_LIBS=${ZSTD_LIBRARY_DBG})
endif()
# Setup tiff libraries
if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/tiff.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" TIFF_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/tiff.lib" TIFF_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/tiffd.lib" TIFF_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS TIFF_INC=-I${TIFF_INCLUDE})
list(APPEND NMAKE_OPTIONS TIFF_OPTS=-DBIGTIFF_SUPPORT)
list(APPEND NMAKE_OPTIONS_REL TIFF_LIB=${TIFF_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG TIFF_LIB=${TIFF_LIBRARY_DBG})
endif()
# Setup geotiff libraries
if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/geotiff_i.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" GEOTIFF_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/geotiff_i.lib" GEOTIFF_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/geotiff_d_i.lib" GEOTIFF_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS GEOTIFF_INC=-I${GEOTIFF_INCLUDE})
list(APPEND NMAKE_OPTIONS_REL GEOTIFF_LIB=${GEOTIFF_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG GEOTIFF_LIB=${GEOTIFF_LIBRARY_DBG})
endif()
# Setup Xerces libraries
if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/xerces-c_3.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" XERCES_DIR)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" XERCES_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/xerces-c_3.lib" XERCES_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/xerces-c_3D.lib" XERCES_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS ILI_ENABLED=YES)
list(APPEND NMAKE_OPTIONS XERCES_DIR=${XERCES_DIR})
list(APPEND NMAKE_OPTIONS "XERCES_INCLUDE=-I${XERCES_INCLUDE} -I${XERCES_INCLUDE}/xercesc")
list(APPEND NMAKE_OPTIONS_REL XERCES_LIB=${XERCES_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG XERCES_LIB=${XERCES_LIBRARY_DBG})
endif()
# Setup freexl libraries
if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/freexl.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" FREEXL_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/freexl.lib" FREEXL_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/freexl.lib" FREEXL_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS FREEXL_CFLAGS=-I${FREEXL_INCLUDE})
list(APPEND NMAKE_OPTIONS_REL FREEXL_LIBS=${FREEXL_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG FREEXL_LIBS=${FREEXL_LIBRARY_DBG})
endif()
# Setup Cryptopp libraries
if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/cryptopp-static.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" CRYPTOPP_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/cryptopp-static.lib" CRYPTOPP_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/cryptopp-static.lib" CRYPTOPP_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS CRYPTOPP_INC=-I${CRYPTOPP_INCLUDE})
list(APPEND NMAKE_OPTIONS_REL CRYPTOPP_LIB=${CRYPTOPP_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG CRYPTOPP_LIB=${CRYPTOPP_LIBRARY_DBG})
endif()
# Setup netcdf libraries
if("netcdf" IN_LIST FEATURES)
x_vcpkg_pkgconfig_get_modules(
PREFIX NETCDF
MODULES --msvc-syntax netcdf
INCLUDE_DIRS
LIBS
)
string(REGEX REPLACE "^/I" "" NETCDF_INC_DIR "${NETCDF_INCLUDE_DIRS}")
list(APPEND NMAKE_OPTIONS NETCDF_PLUGIN=NO)
list(APPEND NMAKE_OPTIONS NETCDF_SETTING=yes)
list(APPEND NMAKE_OPTIONS "NETCDF_INC_DIR=${NETCDF_INC_DIR}")
list(APPEND NMAKE_OPTIONS_REL "NETCDF_LIB=${NETCDF_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "NETCDF_LIB=${NETCDF_LIBS_DEBUG}")
endif()
# Setup hdf5 libraries
if("hdf5" IN_LIST FEATURES)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" HDF5_DIR)
x_vcpkg_pkgconfig_get_modules(
PREFIX HDF5
MODULES --msvc-syntax hdf5
LIBS
)
list(APPEND NMAKE_OPTIONS HDF5_PLUGIN=NO)
list(APPEND NMAKE_OPTIONS "HDF5_DIR=${HDF5_DIR}")
list(APPEND NMAKE_OPTIONS_REL "HDF5_LIB=${HDF5_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "HDF5_LIB=${HDF5_LIBS_DEBUG}")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
list(APPEND NMAKE_OPTIONS HDF5_H5_IS_DLL=YES)
endif()
endif()
# Setup libkml libraries
if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/kmlbase.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" LIBKML_DIR)
list(APPEND NMAKE_OPTIONS LIBKML_DIR=${LIBKML_DIR})
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" LIBKML_INCLUDE)
list(APPEND NMAKE_OPTIONS LIBKML_INCLUDE=-I${LIBKML_INCLUDE})
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmlbase.lib" KMLBASE_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmlbase.lib" KMLBASE_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmlconvenience.lib" KMLCONVENIENCE_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmlconvenience.lib" KMLCONVENIENCE_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmldom.lib" KMLDOM_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmldom.lib" KMLDOM_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmlengine.lib" KMLENGINE_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmlengine.lib" KMLENGINE_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmlregionator.lib" KMLREGIONATOR_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmlregionator.lib" KMLREGIONATOR_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmlxsd.lib" KMLXSD_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmlxsd.lib" KMLXSD_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/bz2.lib" BZIP2_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/bz2d.lib" BZIP2_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/minizip.lib" MINIZIP_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/minizip.lib" MINIZIP_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/uriparser.lib" URIPARSER_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/uriparser.lib" URIPARSER_DBG)
list(APPEND NMAKE_OPTIONS_REL "LIBKML_LIBS=${KMLBASE_REL} ${KMLCONVENIENCE_REL} ${KMLDOM_REL} ${KMLENGINE_REL} ${KMLREGIONATOR_REL} ${KMLXSD_REL} ${BZIP2_REL} ${MINIZIP_REL} ${URIPARSER_REL} ${EXPAT_LIBRARY_REL} ${ZLIB_LIBRARY_REL}")
list(APPEND NMAKE_OPTIONS_DBG "LIBKML_LIBS=${KMLBASE_DBG} ${KMLCONVENIENCE_DBG} ${KMLDOM_DBG} ${KMLENGINE_DBG} ${KMLREGIONATOR_DBG} ${KMLXSD_DBG} ${BZIP2_DBG} ${MINIZIP_DBG} ${URIPARSER_DBG} ${EXPAT_LIBRARY_DBG} ${ZLIB_LIBRARY_DBG}")
endif()
if("mysql-libmysql" IN_LIST FEATURES OR "mysql-libmariadb" IN_LIST FEATURES)
# Setup MySQL libraries + include path
if("mysql-libmysql" IN_LIST FEATURES)
set(MYSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/mysql" )
set(MYSQL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib" )
set(MYSQL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib" )
endif()
if("mysql-libmariadb" IN_LIST FEATURES)
set(MYSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/mysql" )
set(MYSQL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libmariadb.lib" )
set(MYSQL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libmariadb.lib" )
endif()
endif()
if ("libspatialite" IN_LIST FEATURES)
# Setup spatialite libraries + include path
set(SPATIALITE_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/spatialite" )
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
set(SPATIALITE_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/librttopo.lib" "${CURRENT_INSTALLED_DIR}/lib/spatialite.lib")
set(SPATIALITE_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/librttopo.lib" "${CURRENT_INSTALLED_DIR}/debug/lib/spatialite.lib")
# libgeotiff
list(APPEND NMAKE_OPTIONS "GEOTIFF_INC=-I${CURRENT_INSTALLED_DIR}/include")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
list(APPEND NMAKE_OPTIONS_REL "GEOTIFF_LIB=${CURRENT_INSTALLED_DIR}/lib/geotiff_i.lib")
list(APPEND NMAKE_OPTIONS_DBG "GEOTIFF_LIB=${CURRENT_INSTALLED_DIR}/debug/lib/geotiff_d_i.lib")
else()
set(SPATIALITE_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/spatialite.lib" )
set(SPATIALITE_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/spatialite.lib" )
# libgeotiff may need tiff and proj4, but these are added separately, with all transitive deps.
list(APPEND NMAKE_OPTIONS_REL "GEOTIFF_LIB=${CURRENT_INSTALLED_DIR}/lib/geotiff.lib")
list(APPEND NMAKE_OPTIONS_DBG "GEOTIFF_LIB=${CURRENT_INSTALLED_DIR}/debug/lib/geotiff_d.lib")
endif()
# libiconv
# There is no pc file, and CMake added the Find module in version 3.11.
list(APPEND extra_exports ICONV)
set(ICONV_LIBS_RELEASE "${CURRENT_INSTALLED_DIR}/lib/iconv.lib ${CURRENT_INSTALLED_DIR}/lib/charset.lib")
set(ICONV_LIBS_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib/iconv.lib ${CURRENT_INSTALLED_DIR}/debug/lib/charset.lib")
list(APPEND NMAKE_OPTIONS "LIBICONV_INCLUDE=-I${CURRENT_INSTALLED_DIR}/include" "LIBICONV_CFLAGS=-DICONV_CONST=")
list(APPEND NMAKE_OPTIONS_REL "LIBICONV_LIBRARY=${ICONV_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "LIBICONV_LIBRARY=${ICONV_LIBS_DEBUG}")
# libjpeg-turbo
list(APPEND NMAKE_OPTIONS "JPEG_EXTERNAL_LIB=1" "JPEGDIR=${CURRENT_INSTALLED_DIR}/include")
x_vcpkg_pkgconfig_get_modules(PREFIX JPEG MODULES --msvc-syntax libjpeg LIBS)
list(APPEND NMAKE_OPTIONS_REL "JPEG_LIB=${JPEG_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "JPEG_LIB=${JPEG_LIBS_DEBUG}")
# liblzma
x_vcpkg_pkgconfig_get_modules(PREFIX LZMA MODULES --msvc-syntax liblzma INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "LZMA_CFLAGS=${LZMA_INCLUDE_DIRS_RELEASE}" "LZMA_LIBS=${LZMA_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "LZMA_CFLAGS=${LZMA_INCLUDE_DIRS_DEBUG}" "LZMA_LIBS=${LZMA_LIBS_DEBUG}")
# libpng
list(APPEND NMAKE_OPTIONS "PNG_EXTERNAL_LIB=1" "PNGDIR=${CURRENT_INSTALLED_DIR}/include")
x_vcpkg_pkgconfig_get_modules(PREFIX PNG MODULES --msvc-syntax libpng LIBS)
list(APPEND NMAKE_OPTIONS_REL "PNG_LIB=${PNG_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "PNG_LIB=${PNG_LIBS_DEBUG}")
# libwebp
list(APPEND NMAKE_OPTIONS "WEBP_ENABLED=YES")
x_vcpkg_pkgconfig_get_modules(PREFIX WEBP MODULES --msvc-syntax libwebp INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "WEBP_CFLAGS=${WEBP_INCLUDE_DIRS_RELEASE}" "WEBP_LIBS=${WEBP_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "WEBP_CFLAGS=${WEBP_INCLUDE_DIRS_DEBUG}" "WEBP_LIBS=${WEBP_LIBS_DEBUG}")
# libxml2
x_vcpkg_pkgconfig_get_modules(PREFIX LIBXML2 MODULES --msvc-syntax libxml-2.0 INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "LIBXML2_INC=${LIBXML2_INCLUDE_DIRS_RELEASE}" "LIBXML2_LIB=${LIBXML2_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "LIBXML2_INC=${LIBXML2_INCLUDE_DIRS_DEBUG}" "LIBXML2_LIB=${LIBXML2_LIBS_DEBUG}")
# openjpeg
list(APPEND NMAKE_OPTIONS "OPENJPEG_ENABLED=YES")
x_vcpkg_pkgconfig_get_modules(PREFIX OPENJPEG MODULES --msvc-syntax libopenjp2 INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "OPENJPEG_CFLAGS=${OPENJPEG_INCLUDE_DIRS_RELEASE}" "OPENJPEG_LIB=${OPENJPEG_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "OPENJPEG_CFLAGS=${OPENJPEG_INCLUDE_DIRS_DEBUG}" "OPENJPEG_LIB=${OPENJPEG_LIBS_DEBUG}")
# proj
x_vcpkg_pkgconfig_get_modules(PREFIX PROJ MODULES --msvc-syntax proj INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "PROJ_INCLUDE=${PROJ_INCLUDE_DIRS_RELEASE}" "PROJ_LIBRARY=${PROJ_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "PROJ_INCLUDE=${PROJ_INCLUDE_DIRS_DEBUG}" "PROJ_LIBRARY=${PROJ_LIBS_DEBUG}")
# sqlite3 and spatialite
if ("libspatialite" IN_LIST FEATURES)
list(APPEND extra_exports SPATIALITE)
list(APPEND NMAKE_OPTIONS "SPATIALITE_412_OR_LATER=yes")
x_vcpkg_pkgconfig_get_modules(PREFIX SQLITE MODULES --msvc-syntax spatialite sqlite3 INCLUDE_DIRS LIBS)
string(APPEND SQLITE_INCLUDE_DIRS_RELEASE " -DHAVE_SPATIALITE")
string(APPEND SQLITE_INCLUDE_DIRS_DEBUG " -DHAVE_SPATIALITE")
else()
x_vcpkg_pkgconfig_get_modules(PREFIX SQLITE MODULES --msvc-syntax sqlite3 INCLUDE_DIRS LIBS)
endif()
list(APPEND NMAKE_OPTIONS_REL "SQLITE_INC=${SQLITE_INCLUDE_DIRS_RELEASE}" "SQLITE_LIB=${SQLITE_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "SQLITE_INC=${SQLITE_INCLUDE_DIRS_DEBUG}" "SQLITE_LIB=${SQLITE_LIBS_DEBUG}")
# tiff
x_vcpkg_pkgconfig_get_modules(PREFIX TIFF MODULES --msvc-syntax libtiff-4 INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "TIFF_INC=${TIFF_INCLUDE_DIRS_RELEASE} -DBIGTIFF_SUPPORT" "TIFF_LIB=${TIFF_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "TIFF_INC=${TIFF_INCLUDE_DIRS_DEBUG} -DBIGTIFF_SUPPORT" "TIFF_LIB=${TIFF_LIBS_DEBUG}")
# zlib
list(APPEND NMAKE_OPTIONS "ZLIB_EXTERNAL_LIB=1")
x_vcpkg_pkgconfig_get_modules(PREFIX ZLIB MODULES --msvc-syntax zlib INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "ZLIB_INC=${ZLIB_INCLUDE_DIRS_RELEASE}" "ZLIB_LIB=${ZLIB_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "ZLIB_INC=${ZLIB_INCLUDE_DIRS_DEBUG}" "ZLIB_LIB=${ZLIB_LIBS_DEBUG}")
# zstd
x_vcpkg_pkgconfig_get_modules(PREFIX ZSTD MODULES --msvc-syntax libzstd INCLUDE_DIRS LIBS)
list(APPEND NMAKE_OPTIONS_REL "ZSTD_CFLAGS=${ZSTD_INCLUDE_DIRS_RELEASE}" "ZSTD_LIBS=${ZSTD_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "ZSTD_CFLAGS=${ZSTD_INCLUDE_DIRS_DEBUG}" "ZSTD_LIBS=${ZSTD_LIBS_DEBUG}")
# Features
if ("cfitsio" IN_LIST FEATURES)
list(APPEND NMAKE_OPTIONS "FITS_INC_DIR=${CURRENT_INSTALLED_DIR}/include" "FITS_PLUGIN=NO")
list(APPEND NMAKE_OPTIONS_REL "FITS_LIB=${CURRENT_INSTALLED_DIR}/lib/cfitsio.lib")
list(APPEND NMAKE_OPTIONS_DBG "FITS_LIB=${CURRENT_INSTALLED_DIR}/debug/lib/cfitsio.lib")
endif()
if("hdf5" IN_LIST FEATURES)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" HDF5_DIR)
x_vcpkg_pkgconfig_get_modules(PREFIX HDF5 MODULES --msvc-syntax hdf5 LIBS)
list(APPEND NMAKE_OPTIONS "HDF5_DIR=${CURRENT_INSTALLED_DIR}" "HDF5_PLUGIN=NO")
list(APPEND NMAKE_OPTIONS_REL "HDF5_LIB=${HDF5_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "HDF5_LIB=${HDF5_LIBS_DEBUG}")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
list(APPEND NMAKE_OPTIONS "HDF5_H5_IS_DLL=YES")
endif()
endif()
if("mysql-libmariadb" IN_LIST FEATURES)
list(APPEND NMAKE_OPTIONS "MYSQL_INC_DIR=${CURRENT_INSTALLED_DIR}/include/mysql")
list(APPEND NMAKE_OPTIONS_REL "MYSQL_LIB=${CURRENT_INSTALLED_DIR}/lib/libmariadb.lib")
list(APPEND NMAKE_OPTIONS_DBG "MYSQL_LIB=${CURRENT_INSTALLED_DIR}/debug/lib/libmariadb.lib")
endif()
if("netcdf" IN_LIST FEATURES)
list(APPEND NMAKE_OPTIONS "NETCDF_INC_DIR=${CURRENT_INSTALLED_DIR}/include" "NETCDF_SETTING=yes" "NETCDF_PLUGIN=NO")
x_vcpkg_pkgconfig_get_modules(PREFIX NETCDF MODULES --msvc-syntax netcdf LIBS)
list(APPEND NMAKE_OPTIONS_REL "NETCDF_LIB=${NETCDF_LIBS_RELEASE}")
list(APPEND NMAKE_OPTIONS_DBG "NETCDF_LIB=${NETCDF_LIBS_DEBUG}")
endif()
if("postgresql" IN_LIST FEATURES)
list(APPEND NMAKE_OPTIONS "PG_INC_DIR=${CURRENT_INSTALLED_DIR}/include")
x_vcpkg_pkgconfig_get_modules(PREFIX OPENSSL MODULES --msvc-syntax openssl LIBS)
set(PGSQL_LIBRARY_REL "${CURRENT_INSTALLED_DIR}/lib/libpq.lib ${CURRENT_INSTALLED_DIR}/lib/libpgcommon.lib ${CURRENT_INSTALLED_DIR}/lib/libpgport.lib")
list(APPEND NMAKE_OPTIONS_REL "PG_LIB=${PGSQL_LIBRARY_REL} Secur32.lib Shell32.lib Advapi32.lib Crypt32.lib Gdi32.lib ${OPENSSL_LIBS_RELEASE}")
set(PGSQL_LIBRARY_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libpq.lib ${CURRENT_INSTALLED_DIR}/debug/lib/libpgcommon.lib ${CURRENT_INSTALLED_DIR}/debug/lib/libpgport.lib")
list(APPEND NMAKE_OPTIONS_DBG "PG_LIB=${PGSQL_LIBRARY_DBG} Secur32.lib Shell32.lib Advapi32.lib Crypt32.lib Gdi32.lib ${OPENSSL_LIBS_DEBUG}")
endif()
# Dependencies which are not in vpckg.json
# cryptopp
if("system-libraries" IN_LIST FEATURES AND EXISTS "${CURRENT_INSTALLED_DIR}/lib/cryptopp-static.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" CRYPTOPP_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/cryptopp-static.lib" CRYPTOPP_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/cryptopp-static.lib" CRYPTOPP_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS CRYPTOPP_INC=-I${CRYPTOPP_INCLUDE})
list(APPEND NMAKE_OPTIONS_REL CRYPTOPP_LIB=${CRYPTOPP_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG CRYPTOPP_LIB=${CRYPTOPP_LIBRARY_DBG})
endif()
# freexl
if("system-libraries" IN_LIST FEATURES AND EXISTS "${CURRENT_INSTALLED_DIR}/lib/freexl.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" FREEXL_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/freexl.lib" FREEXL_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/freexl.lib" FREEXL_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS FREEXL_CFLAGS=-I${FREEXL_INCLUDE})
list(APPEND NMAKE_OPTIONS_REL FREEXL_LIBS=${FREEXL_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG FREEXL_LIBS=${FREEXL_LIBRARY_DBG})
endif()
# libkml
if("system-libraries" IN_LIST FEATURES AND EXISTS "${CURRENT_INSTALLED_DIR}/lib/kmlbase.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" LIBKML_DIR)
list(APPEND NMAKE_OPTIONS LIBKML_DIR=${LIBKML_DIR})
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" LIBKML_INCLUDE)
list(APPEND NMAKE_OPTIONS LIBKML_INCLUDE=-I${LIBKML_INCLUDE})
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmlbase.lib" KMLBASE_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmlbase.lib" KMLBASE_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmlconvenience.lib" KMLCONVENIENCE_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmlconvenience.lib" KMLCONVENIENCE_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmldom.lib" KMLDOM_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmldom.lib" KMLDOM_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmlengine.lib" KMLENGINE_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmlengine.lib" KMLENGINE_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmlregionator.lib" KMLREGIONATOR_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmlregionator.lib" KMLREGIONATOR_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/kmlxsd.lib" KMLXSD_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/kmlxsd.lib" KMLXSD_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/bz2.lib" BZIP2_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/bz2d.lib" BZIP2_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/minizip.lib" MINIZIP_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/minizip.lib" MINIZIP_DBG)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/uriparser.lib" URIPARSER_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/uriparser.lib" URIPARSER_DBG)
list(APPEND NMAKE_OPTIONS_REL "LIBKML_LIBS=${KMLBASE_REL} ${KMLCONVENIENCE_REL} ${KMLDOM_REL} ${KMLENGINE_REL} ${KMLREGIONATOR_REL} ${KMLXSD_REL} ${BZIP2_REL} ${MINIZIP_REL} ${URIPARSER_REL} ${EXPAT_LIBRARY_REL} ${ZLIB_LIBRARY_REL}")
list(APPEND NMAKE_OPTIONS_DBG "LIBKML_LIBS=${KMLBASE_DBG} ${KMLCONVENIENCE_DBG} ${KMLDOM_DBG} ${KMLENGINE_DBG} ${KMLREGIONATOR_DBG} ${KMLXSD_DBG} ${BZIP2_DBG} ${MINIZIP_DBG} ${URIPARSER_DBG} ${EXPAT_LIBRARY_DBG} ${ZLIB_LIBRARY_DBG}")
endif()
# xerces-c
if("system-libraries" IN_LIST FEATURES AND EXISTS "${CURRENT_INSTALLED_DIR}/lib/xerces-c_3.lib")
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" XERCES_DIR)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" XERCES_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/xerces-c_3.lib" XERCES_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/xerces-c_3D.lib" XERCES_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS ILI_ENABLED=YES)
list(APPEND NMAKE_OPTIONS XERCES_DIR=${XERCES_DIR})
list(APPEND NMAKE_OPTIONS "XERCES_INCLUDE=-I${XERCES_INCLUDE} -I${XERCES_INCLUDE}/xercesc")
list(APPEND NMAKE_OPTIONS_REL XERCES_LIB=${XERCES_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG XERCES_LIB=${XERCES_LIBRARY_DBG})
endif()
set(HAVE_SPATIALITE "-DHAVE_SPATIALITE")
list(APPEND NMAKE_OPTIONS SPATIALITE_412_OR_LATER=yes)
endif()
if ("cfitsio" IN_LIST FEATURES)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" FITS_INCLUDE)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/cfitsio.lib" FITS_LIBRARY_REL)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/cfitsio.lib" FITS_LIBRARY_DBG)
list(APPEND NMAKE_OPTIONS FITS_PLUGIN=YES)
list(APPEND NMAKE_OPTIONS FITS_INC_DIR=${FITS_INCLUDE})
list(APPEND NMAKE_OPTIONS_REL FITS_LIB=${FITS_LIBRARY_REL})
list(APPEND NMAKE_OPTIONS_DBG FITS_LIB=${FITS_LIBRARY_DBG})
endif()
endmacro()

View File

@ -13,115 +13,53 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO OSGeo/gdal
REF d699b38a744301368070ef780f797340da4a9c3c # 3.4.0
SHA512 709523740a51a0a2a144debcfa5fbc5a5b3d93cc3632856cfbc37f7ca52f2e83f4942d9a27d4c723ee19d2397cc91a4b1ba4543547afdfefb3980a7ba6684bd7
REF v3.4.1
SHA512 b9b5389f15fdc6cff846003a07c934918c0e1d8e53d0f2ea3f88fff31d3f8a59a857e938fc337d0bde11dc1416297d46f52d729576281bec53d50b08868c51ba
HEAD_REF master
PATCHES ${GDAL_PATCHES}
)
# `vcpkg clean` stumbles over one subdir
file(REMOVE_RECURSE "${SOURCE_PATH}/autotest")
set(extra_exports "")
if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
set(NATIVE_DATA_DIR "${CURRENT_PACKAGES_DIR}/share/gdal")
set(NATIVE_HTML_DIR "${CURRENT_PACKAGES_DIR}/share/gdal/html")
set(NMAKE_OPTIONS "")
set(NMAKE_OPTIONS_REL "")
set(NMAKE_OPTIONS_DBG "")
x_vcpkg_pkgconfig_get_modules(PREFIX PROJ MODULES --msvc-syntax proj INCLUDE_DIRS LIBS)
include("${CMAKE_CURRENT_LIST_DIR}/dependency_win.cmake")
find_dependency_win()
if("mysql-libmysql" IN_LIST FEATURES OR "mysql-libmariadb" IN_LIST FEATURES)
list(APPEND NMAKE_OPTIONS "MYSQL_INC_DIR=${MYSQL_INCLUDE_DIR}")
list(APPEND NMAKE_OPTIONS_REL "MYSQL_LIB=${MYSQL_LIBRARY_REL}")
list(APPEND NMAKE_OPTIONS_DBG "MYSQL_LIB=${MYSQL_LIBRARY_DBG}")
endif()
list(APPEND NMAKE_OPTIONS
"DATADIR=${NATIVE_DATA_DIR}"
"HTMLDIR=${NATIVE_HTML_DIR}"
"GEOS_DIR=${GEOS_INCLUDE_DIR}"
"GEOS_CFLAGS=-I${GEOS_INCLUDE_DIR} -DHAVE_GEOS"
"PROJ_INCLUDE=${PROJ_INCLUDE_DIRS}"
"EXPAT_DIR=${EXPAT_INCLUDE_DIR}"
"EXPAT_INCLUDE=-I${EXPAT_INCLUDE_DIR}"
"CURL_INC=-I${CURL_INCLUDE_DIR}"
"SQLITE_INC=-I${SQLITE_INCLUDE_DIR} ${HAVE_SPATIALITE}"
"PG_INC_DIR=${PGSQL_INCLUDE_DIR}"
OPENJPEG_ENABLED=YES
"OPENJPEG_CFLAGS=-I${OPENJPEG_INCLUDE_DIR}"
OPENJPEG_VERSION=20100
WEBP_ENABLED=YES
"WEBP_CFLAGS=-I${WEBP_INCLUDE_DIR}"
"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
)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
list(APPEND NMAKE_OPTIONS WIN64=YES)
endif()
if(VCPKG_TARGET_ARCHITECTURE MATCHES "^arm")
list(APPEND NMAKE_OPTIONS SSEFLAGS=/DNO_SSSE AVXFLAGS=/DNO_AVX)
endif()
if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
list(APPEND NMAKE_OPTIONS CURL_CFLAGS=-DCURL_STATICLIB)
list(APPEND NMAKE_OPTIONS DLLBUILD=0)
list(APPEND NMAKE_OPTIONS "PROJ_FLAGS=-DPROJ_STATIC -DPROJ_VERSION=5")
else()
# Enables PDBs for release and debug builds
list(APPEND NMAKE_OPTIONS WITH_PDB=1)
list(APPEND NMAKE_OPTIONS DLLBUILD=1)
endif()
if (VCPKG_CRT_LINKAGE STREQUAL "static")
set(LINKAGE_FLAGS "/MT")
else()
set(LINKAGE_FLAGS "/MD")
endif()
list(APPEND NMAKE_OPTIONS_REL
${NMAKE_OPTIONS}
set(NMAKE_OPTIONS
"DATADIR=${CURRENT_PACKAGES_DIR}/share/gdal"
"HTMLDIR=${CURRENT_PACKAGES_DIR}/share/gdal/html"
"MSVC_VER=1900"
)
set(NMAKE_OPTIONS_REL
"GDAL_HOME=${CURRENT_PACKAGES_DIR}"
"CXX_CRT_FLAGS=${LINKAGE_FLAGS}"
"PROJ_LIBRARY=${PROJ_LIBS_RELEASE}"
"PNG_LIB=${PNG_LIBRARY_REL}"
"GEOS_LIB=${GEOS_LIBRARY_REL}"
"EXPAT_LIB=${EXPAT_LIBRARY_REL}"
"CURL_LIB=${CURL_LIBRARY_REL} wsock32.lib wldap32.lib winmm.lib"
"SQLITE_LIB=${SQLITE_LIBRARY_REL} ${SPATIALITE_LIBRARY_REL}"
"OPENJPEG_LIB=${OPENJPEG_LIBRARY_REL}"
"WEBP_LIBS=${WEBP_LIBRARY_REL}"
"LIBXML2_LIB=${XML2_LIBRARY_REL} ${ICONV_LIBRARY_REL} ${LZMA_LIBRARY_REL}"
"ZLIB_LIB=${ZLIB_LIBRARY_REL}"
"PG_LIB=${PGSQL_LIBRARY_REL} Secur32.lib Shell32.lib Advapi32.lib Crypt32.lib Gdi32.lib ${OPENSSL_LIBRARY_REL}"
)
list(APPEND NMAKE_OPTIONS_DBG
${NMAKE_OPTIONS}
)
set(NMAKE_OPTIONS_DBG
"GDAL_HOME=${CURRENT_PACKAGES_DIR}/debug"
"CXX_CRT_FLAGS=${LINKAGE_FLAGS}d"
"PROJ_LIBRARY=${PROJ_LIBS_DEBUG}"
"PNG_LIB=${PNG_LIBRARY_DBG}"
"GEOS_LIB=${GEOS_LIBRARY_DBG}"
"EXPAT_LIB=${EXPAT_LIBRARY_DBG}"
"CURL_LIB=${CURL_LIBRARY_DBG} wsock32.lib wldap32.lib winmm.lib"
"SQLITE_LIB=${SQLITE_LIBRARY_DBG} ${SPATIALITE_LIBRARY_DBG}"
"OPENJPEG_LIB=${OPENJPEG_LIBRARY_DBG}"
"WEBP_LIBS=${WEBP_LIBRARY_DBG}"
"LIBXML2_LIB=${XML2_LIBRARY_DBG} ${ICONV_LIBRARY_DBG} ${LZMA_LIBRARY_DBG}"
"ZLIB_LIB=${ZLIB_LIBRARY_DBG}"
"PG_LIB=${PGSQL_LIBRARY_DBG} Secur32.lib Shell32.lib Advapi32.lib Crypt32.lib Gdi32.lib ${OPENSSL_LIBRARY_DBG}"
DEBUG=1
)
)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
list(APPEND NMAKE_OPTIONS "WIN64=YES")
endif()
if(VCPKG_TARGET_ARCHITECTURE MATCHES "^arm")
list(APPEND NMAKE_OPTIONS "SSEFLAGS=/DNO_SSSE" "AVXFLAGS=/DNO_AVX")
endif()
if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
list(APPEND NMAKE_OPTIONS "DLLBUILD=0")
else()
list(APPEND NMAKE_OPTIONS "DLLBUILD=1" "WITH_PDB=1")
endif()
include("${CMAKE_CURRENT_LIST_DIR}/dependency_win.cmake")
find_dependency_win()
if("tools" IN_LIST FEATURES)
list(APPEND NMAKE_OPTIONS_REL "BUILD_TOOLS=1")
@ -134,15 +72,13 @@ if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
vcpkg_install_nmake(
SOURCE_PATH "${SOURCE_PATH}/gdal"
TARGET devinstall
OPTIONS
${NMAKE_OPTIONS}
OPTIONS_RELEASE
"${NMAKE_OPTIONS_REL}"
${NMAKE_OPTIONS_REL}
OPTIONS_DEBUG
"${NMAKE_OPTIONS_DBG}"
)
if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/gdal/html")
endif()
${NMAKE_OPTIONS_DBG}
)
if("tools" IN_LIST FEATURES)
set(GDAL_EXES
@ -172,8 +108,8 @@ if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
ogrinfo
ogrlineref
ogrtindex
)
# vcpkg_copy_tools removed the bin directories for us so no need to remove again
)
# vcpkg_copy_tools removes the bin directories for us so no need to remove again
vcpkg_copy_tools(TOOL_NAMES ${GDAL_EXES} AUTO_CLEAN)
elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
@ -319,6 +255,7 @@ else()
--with-pcidsk=no
--with-pcraster=no
--with-pcre=no
--with-pcre2=no
--with-pdfium=no
--with-podofo=no
--with-poppler=no
@ -397,10 +334,25 @@ else()
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/gdal/debug/bin/gdal-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../../..")
endif()
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cpl_config.h" "#define GDAL_PREFIX \"${CURRENT_INSTALLED_DIR}\"" "")
if("libspatialite" IN_LIST FEATURES)
list(APPEND extra_exports SPATIALITE)
x_vcpkg_pkgconfig_get_modules(
PREFIX SPATIALITE
MODULES spatialite
LIBS
)
endif()
endif()
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
string(COMPARE NOTEQUAL "${NMAKE_OPTIONS}" "" NMAKE_BUILD)
set(GDAL_EXTRA_LIBS_DEBUG "")
set(GDAL_EXTRA_LIBS_RELEASE "")
foreach(prefix IN LISTS extra_exports)
string(APPEND GDAL_EXTRA_LIBS_DEBUG " ${${prefix}_LIBS_DEBUG}")
string(APPEND GDAL_EXTRA_LIBS_RELEASE " ${${prefix}_LIBS_RELEASE}")
endforeach()
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
# Handle copyright
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
file(INSTALL "${SOURCE_PATH}/gdal/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@ -70,6 +70,36 @@ function(_gdal_add_dependency target package)
set(GDAL_FOUND false PARENT_SCOPE)
endif()
endfunction()
function(z_vcpkg_gdal_add_libs keyword config)
set(gdal_deps_target "unofficial::gdal::deps::${keyword}")
if(NOT TARGET "${gdal_deps_target}")
add_library("${gdal_deps_target}" INTERFACE IMPORTED)
if(TARGET GDAL::GDAL) # CMake 3.14
set_property(TARGET GDAL::GDAL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "$<$<CONFIG:${config}>:${gdal_deps_target}>")
endif()
if(NOT GDAL_LIBRARIES STREQUAL "GDAL::GDAL")
set(GDAL_LIBRARIES "${GDAL_LIBRARIES};${keyword};${gdal_deps_target}" PARENT_SCOPE)
endif()
endif()
# The Ninja build system stumbles over '/libpath:` in INTERFACE_LINK_LIBRARIES.
set(lib_paths "${ARGN}")
list(REMOVE_DUPLICATES lib_paths) # For lib paths, late duplicates are redundant.
foreach(item IN LISTS lib_paths)
# INTERFACE_LINK_OPTIONS needs CMake 3.13. There is no direct alternative for older versions.
if(item MATCHES "^/libpath:(.*)|^-L")
set_property(TARGET "${gdal_deps_target}" APPEND PROPERTY INTERFACE_LINK_OPTIONS "${item}")
list(REMOVE_ITEM ARGN "${item}")
endif()
endforeach()
foreach(item IN LISTS ARGN)
get_property(libs TARGET "${gdal_deps_target}" PROPERTY INTERFACE_LINK_LIBRARIES)
if(item MATCHES "^-l|-pthread")
list(REMOVE_ITEM libs "${item}") # For libs, early duplicates are normally redundant.
endif()
list(APPEND libs "${item}")
set_property(TARGET "${gdal_deps_target}" PROPERTY INTERFACE_LINK_LIBRARIES "${libs}")
endforeach()
endfunction()
if(GDAL_FOUND)
cmake_policy(PUSH)
cmake_policy(SET CMP0057 NEW)
@ -80,11 +110,13 @@ if(GDAL_FOUND)
_gdal_add_dependency(CURL::libcurl CURL CONFIG)
_gdal_add_dependency(expat::expat expat CONFIG)
_gdal_add_dependency(GEOS::geos_c geos CONFIG)
_gdal_add_dependency(GIF::GIF GIF)
if(NOT "@NMAKE_BUILD@")
_gdal_add_dependency(GIF::GIF GIF)
endif()
if("hdf5" IN_LIST Z_VCPKG_PORT_FEATURES)
_gdal_add_dependency(hdf5::hdf5 hdf5 CONFIG)
endif()
if(NOT WIN32 OR MINGW)
if(NOT "@NMAKE_BUILD@")
_gdal_add_dependency(json-c::json-c json-c CONFIG)
endif()
_gdal_add_dependency(geotiff_library GeoTIFF CONFIG)
@ -105,6 +137,8 @@ if(GDAL_FOUND)
_gdal_add_dependency(TIFF::TIFF TIFF)
_gdal_add_dependency(ZLIB::ZLIB ZLIB)
_gdal_add_dependency(zstd::libzstd zstd CONFIG)
z_vcpkg_gdal_add_libs(optimized Release @GDAL_EXTRA_LIBS_RELEASE@)
z_vcpkg_gdal_add_libs(debug Debug @GDAL_EXTRA_LIBS_DEBUG@)
list(FIND ARGS "REQUIRED" required)
if(NOT GDAL_FOUND AND NOT required EQUAL "-1")
message(FATAL_ERROR "Failed to find dependencies of GDAL")

View File

@ -1,7 +1,6 @@
{
"name": "gdal",
"version-semver": "3.4.0",
"port-version": 6,
"version-semver": "3.4.1",
"description": "The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data",
"homepage": "https://gdal.org",
"supports": "!uwp",
@ -9,12 +8,19 @@
"curl",
"expat",
"geos",
"giflib",
{
"name": "giflib",
"platform": "!windows | mingw"
},
{
"name": "json-c",
"platform": "!windows | mingw"
},
"libgeotiff",
{
"name": "libiconv",
"platform": "windows & !mingw"
},
"libjpeg-turbo",
"liblzma",
"libpng",
@ -94,7 +100,6 @@
]
},
"system-libraries": {
"$supports": "!windows",
"description": "Include drivers which need additional libraries"
},
"tools": {

View File

@ -2369,8 +2369,8 @@
"port-version": 1
},
"gdal": {
"baseline": "3.4.0",
"port-version": 6
"baseline": "3.4.1",
"port-version": 0
},
"gdcm": {
"baseline": "3.0.7",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "a905d07fce3cebd0d1b52809cbdf1e37cce60cf3",
"version-semver": "3.4.1",
"port-version": 0
},
{
"git-tree": "db90242c9a7b428c65415a64e83c149965dd7ceb",
"version-semver": "3.4.0",