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/pdal/portfile.cmake | |
Diffstat (limited to 'vcpkg/ports/pdal/portfile.cmake')
| -rw-r--r-- | vcpkg/ports/pdal/portfile.cmake | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/vcpkg/ports/pdal/portfile.cmake b/vcpkg/ports/pdal/portfile.cmake new file mode 100644 index 0000000..9c653ed --- /dev/null +++ b/vcpkg/ports/pdal/portfile.cmake @@ -0,0 +1,119 @@ +vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO PDAL/PDAL + REF "${VERSION}" + #[[ + Attention: pdal-dimbuilder must be updated together with pdal + #]] + SHA512 4816c1ef8946937440541b5b8214dd5cbe706ccfbb82e5d67652e983eb6b386a02c1e0ba8ae7e22a0298a65b93953953bc4738d15a33f0f67a39dd6e48dfc076 + HEAD_REF master + PATCHES + dependencies.diff + external-dimbuilder.diff + find-library-suffix.diff + no-rpath.patch + rapidxml.diff +) +file(REMOVE_RECURSE + "${SOURCE_PATH}/cmake/modules/FindCurl.cmake" + "${SOURCE_PATH}/cmake/modules/FindGeoTIFF.cmake" + "${SOURCE_PATH}/cmake/modules/FindICONV.cmake" + "${SOURCE_PATH}/cmake/modules/FindZSTD.cmake" + "${SOURCE_PATH}/vendor/eigen" + "${SOURCE_PATH}/vendor/h3" + "${SOURCE_PATH}/vendor/nanoflann" + "${SOURCE_PATH}/vendor/nlohmann" + "${SOURCE_PATH}/vendor/schema-validator" + "${SOURCE_PATH}/vendor/utfcpp" +) +# PDAL includes "h3api.h", and some calls are decorated with PDALH3 +file(COPY "${CURRENT_PORT_DIR}/h3api.h" DESTINATION "${SOURCE_PATH}") +# PDAL uses namespace 'NL' for nlohmann +file(COPY "${CURRENT_INSTALLED_DIR}/include/nlohmann" DESTINATION "${SOURCE_PATH}/vendor/nlohmann/") +file(APPEND "${SOURCE_PATH}/vendor/nlohmann/nlohmann/json.hpp" "\nnamespace NL = nlohmann;\n") +file(APPEND "${SOURCE_PATH}/vendor/nlohmann/nlohmann/json_fwd.hpp" "\nnamespace NL = nlohmann;\n") +file(WRITE "${SOURCE_PATH}/pdal/JsonFwd.hpp" "/* vcpkg redacted */\n#include <nlohmann/json_fwd.hpp>\nnamespace NL = nlohmann;\n") +file(MAKE_DIRECTORY "${SOURCE_PATH}/vendor/nlohmann/schema-validator") +file(WRITE "${SOURCE_PATH}/vendor/nlohmann/schema-validator/json-schema.hpp" "/* vcpkg redacted */\n#include <nlohmann/json-schema.hpp>\n") +# PDAL vendors arbiter vendors rapidxml +file(COPY "${CURRENT_INSTALLED_DIR}/include/rapidxml/rapidxml.hpp" DESTINATION "${SOURCE_PATH}/vendor/arbiter/") + +unset(ENV{OSGEO4W_HOME}) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + draco BUILD_PLUGIN_DRACO + e57 BUILD_PLUGIN_E57 + hdf5 BUILD_PLUGIN_HDF + lzma WITH_LZMA + pgpointcloud BUILD_PLUGIN_PGPOINTCLOUD + spz BUILD_PLUGIN_SPZ + zstd WITH_ZSTD +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" + "-DDIMBUILDER_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/pdal-dimbuilder/dimbuilder${VCPKG_HOST_EXECUTABLE_SUFFIX}" + -DPDAL_PLUGIN_INSTALL_PATH=. + -DWITH_TESTS:BOOL=OFF + -DWITH_COMPLETION:BOOL=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_Libexecinfo:BOOL=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Libunwind:BOOL=ON + ${FEATURE_OPTIONS} +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/PDAL) +vcpkg_fixup_pkgconfig() +vcpkg_copy_pdbs() + +# Install and cleanup executables +file(GLOB pdal_unsupported + "${CURRENT_PACKAGES_DIR}/bin/*.bat" + "${CURRENT_PACKAGES_DIR}/bin/pdal-config" + "${CURRENT_PACKAGES_DIR}/debug/bin/*.bat" + "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe" + "${CURRENT_PACKAGES_DIR}/debug/bin/pdal-config" +) +file(REMOVE ${pdal_unsupported}) +vcpkg_copy_tools(TOOL_NAMES pdal AUTO_CLEAN) + +# Post-install clean-up +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/include/pdal/filters/private/csf" + "${CURRENT_PACKAGES_DIR}/include/pdal/filters/private/miniball" + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") + +set(arbiter_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/arbiter LICENSE") +file(COPY_FILE "${SOURCE_PATH}/vendor/arbiter/LICENSE" "${arbiter_license}") + +set(kazhdan_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/kazhdan license (PoissonRecon.h)") +file(READ "${SOURCE_PATH}/vendor/kazhdan/PoissonRecon.h" license) +string(REGEX REPLACE "^/\\*\n|\\*/.*\$" "" license "${license}") +file(WRITE "${kazhdan_license}" "${license}") + +set(lazperf_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lazperf license (lazperf.hpp)") +file(READ "${SOURCE_PATH}/vendor/lazperf/lazperf.hpp" license) +string(REGEX REPLACE "^/\\*\n|\\*/.*\$" "" license "${license}") +file(WRITE "${lazperf_license}" "${license}") + +set(lepcc_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/LEPCC license (LEPCC.h)") +file(READ "${SOURCE_PATH}/vendor/lepcc/src/LEPCC.h" license) +string(REGEX REPLACE "^/\\*\n|\\*/.*\$" "" license "${license}") +file(WRITE "${lepcc_license}" "${license}") + +vcpkg_install_copyright(FILE_LIST + "${SOURCE_PATH}/LICENSE.txt" + "${arbiter_license}" + "${kazhdan_license}" + "${lazperf_license}" + "${lepcc_license}" +) |