diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/gdal/portfile.cmake | |
Diffstat (limited to 'vcpkg/ports/gdal/portfile.cmake')
| -rw-r--r-- | vcpkg/ports/gdal/portfile.cmake | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/vcpkg/ports/gdal/portfile.cmake b/vcpkg/ports/gdal/portfile.cmake new file mode 100644 index 0000000..99b8518 --- /dev/null +++ b/vcpkg/ports/gdal/portfile.cmake @@ -0,0 +1,177 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO OSGeo/gdal + REF "v${VERSION}" + SHA512 497e585479b01e0b046ab2343971644746305719f8c6be19764580b818c37b26284f16bdf463e22475f1a2ecb9bf22231f3d51b349458990e75d894c217ae68e + HEAD_REF master + PATCHES + find-link-libraries.patch + fix-gdal-target-interfaces.patch + libkml.patch + sqlite3.diff + target-is-valid.patch +) +# `vcpkg clean` stumbles over one subdir +file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") + +# Avoid abseil, no matter if vcpkg or system +vcpkg_replace_string("${SOURCE_PATH}/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h" [[__has_include("absl/strings/string_view.h")]] "(0)") + +# Cf. cmake/helpers/CheckDependentLibraries.cmake +# The default for all `GDAL_USE_<PKG>` dependencies is `OFF`. +# Here, we explicitly control dependencies provided via vpcpkg. +# "core" is used for a dependency which must be enabled to avoid vendored lib. +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + arrow GDAL_USE_ARROW + arrow-adbc GDAL_USE_ADBCDRIVERMANAGER + archive GDAL_USE_ARCHIVE + cfitsio GDAL_USE_CFITSIO + curl GDAL_USE_CURL + expat GDAL_USE_EXPAT + freexl GDAL_USE_FREEXL + geos GDAL_USE_GEOS + core GDAL_USE_GEOTIFF + gif GDAL_USE_GIF + hdf5 GDAL_USE_HDF5 + iconv GDAL_USE_ICONV + jpeg GDAL_USE_JPEG + core GDAL_USE_JSONC + kea GDAL_USE_KEA + lerc GDAL_USE_LERC + libkml GDAL_USE_LIBKML + lzma GDAL_USE_LIBLZMA + libxml2 GDAL_USE_LIBXML2 + mysql-libmariadb GDAL_USE_MYSQL + netcdf GDAL_USE_NETCDF + odbc GDAL_USE_ODBC + openjpeg GDAL_USE_OPENJPEG + openssl GDAL_USE_OPENSSL + parquet GDAL_USE_PARQUET + pcre2 GDAL_USE_PCRE2 + png GDAL_USE_PNG + poppler GDAL_USE_POPPLER + postgresql GDAL_USE_POSTGRESQL + qhull GDAL_USE_QHULL + #core GDAL_USE_SHAPELIB # https://github.com/OSGeo/gdal/issues/5711, https://github.com/microsoft/vcpkg/issues/16041 + core GDAL_USE_SHAPELIB_INTERNAL + libspatialite GDAL_USE_SPATIALITE + sqlite3 GDAL_USE_SQLITE3 + core GDAL_USE_TIFF + webp GDAL_USE_WEBP + core GDAL_USE_ZLIB + zstd GDAL_USE_ZSTD + tools BUILD_APPS + INVERTED_FEATURES + libspatialite CMAKE_DISABLE_FIND_PACKAGE_SPATIALITE +) +if(GDAL_USE_ICONV AND VCPKG_TARGET_IS_WINDOWS) + list(APPEND FEATURE_OPTIONS -D_ICONV_SECOND_ARGUMENT_IS_NOT_CONST=ON) +endif() + +# Compatibility with older Android versions https://github.com/OSGeo/gdal/pull/5941 +if(VCPKG_TARGET_IS_ANDROID AND ANDROID_PLATFORM VERSION_LESS 24 AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")) + list(APPEND FEATURE_OPTIONS -DBUILD_WITHOUT_64BIT_OFFSET=ON) +endif() + +string(REPLACE "dynamic" "" qhull_target "Qhull::qhull${VCPKG_LIBRARY_LINKAGE}_r") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} # for host pkgconf in PATH + ${FEATURE_OPTIONS} + -DBUILD_DOCS=OFF + -DBUILD_PYTHON_BINDINGS=OFF + -DBUILD_TESTING=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_CSharp=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Java=ON + -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON + -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=ON + -DGDAL_USE_INTERNAL_LIBS=OFF + -DGDAL_USE_EXTERNAL_LIBS=OFF + -DGDAL_BUILD_OPTIONAL_DRIVERS=ON + -DOGR_BUILD_OPTIONAL_DRIVERS=ON + -DFIND_PACKAGE2_KEA_ENABLED=OFF + -DGDAL_CHECK_PACKAGE_MySQL_NAMES=unofficial-libmariadb + -DGDAL_CHECK_PACKAGE_MySQL_TARGETS=unofficial::libmariadb + -DMYSQL_LIBRARIES=unofficial::libmariadb + -DGDAL_CHECK_PACKAGE_NetCDF_NAMES=netCDF + -DGDAL_CHECK_PACKAGE_NetCDF_TARGETS=netCDF::netcdf + -DGDAL_CHECK_PACKAGE_QHULL_NAMES=Qhull + "-DGDAL_CHECK_PACKAGE_QHULL_TARGETS=${qhull_target}" + "-DQHULL_LIBRARY=${qhull_target}" + "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" + OPTIONS_DEBUG + -DBUILD_APPS=OFF + MAYBE_UNUSED_VARIABLES + QHULL_LIBRARY +) +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_fixup_pkgconfig() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gdal) +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/gdal/GDALConfig.cmake" + "include(CMakeFindDependencyMacro)" + "include(CMakeFindDependencyMacro) +# gdal needs a pkg-config tool. A host dependency provides pkgconf. +get_filename_component(vcpkg_host_prefix \"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}\" ABSOLUTE) +list(APPEND CMAKE_PROGRAM_PATH \"\${vcpkg_host_prefix}/tools/pkgconf\")" +) + +if (BUILD_APPS) + vcpkg_copy_tools( + TOOL_NAMES + gdal + gdal_contour + gdal_create + gdal_footprint + gdal_grid + gdal_rasterize + gdal_translate + gdal_viewshed + gdaladdo + gdalbuildvrt + gdaldem + gdalenhance + gdalinfo + gdallocationinfo + gdalmanage + gdalmdiminfo + gdalmdimtranslate + gdalsrsinfo + gdaltindex + gdaltransform + gdalwarp + gnmanalyse + gnmmanage + nearblack + ogr2ogr + ogrinfo + ogrlineref + ogrtindex + sozip + AUTO_CLEAN + ) +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/gdal-config" "${CURRENT_PACKAGES_DIR}/debug/bin/gdal-config") + +file(GLOB bin_files "${CURRENT_PACKAGES_DIR}/bin/*") +if(NOT bin_files) + file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/bin" + "${CURRENT_PACKAGES_DIR}/debug/bin" + ) +endif() + +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cpl_config.h" "#define GDAL_PREFIX \"${CURRENT_PACKAGES_DIR}\"" "") + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.TXT") |