From 6a150001c091cfe910558ca7f582704799c647b7 Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Tue, 5 Nov 2024 21:26:48 +0100 Subject: [PATCH] [pdal] Update to 2.8.1 (#41685) --- ports/pdal-dimbuilder/namespace-nl.diff | 12 + ports/pdal-dimbuilder/portfile.cmake | 32 +++ ports/pdal-dimbuilder/vcpkg.json | 16 ++ ports/pdal/dependencies.diff | 209 ++++++++++++++++++ ports/pdal/external-dimbuilder.diff | 11 + ...-suffix.patch => find-library-suffix.diff} | 11 +- ports/pdal/fix-dependency.patch | 111 ---------- ports/pdal/fix-gcc-13-build.patch | 12 - ports/pdal/fix-unix-compiler-options.patch | 13 -- ports/pdal/gdal-3.7.patch | 22 -- ports/pdal/install-dimbuilder.patch | 10 - ports/pdal/mingw.patch | 13 -- ports/pdal/no-pkgconfig-requires.patch | 12 - ports/pdal/portfile.cmake | 109 ++++----- ports/pdal/usage | 9 +- ports/pdal/vcpkg.json | 30 ++- scripts/ci.baseline.txt | 1 + versions/baseline.json | 8 +- versions/p-/pdal-dimbuilder.json | 9 + versions/p-/pdal.json | 5 + 20 files changed, 370 insertions(+), 285 deletions(-) create mode 100644 ports/pdal-dimbuilder/namespace-nl.diff create mode 100644 ports/pdal-dimbuilder/portfile.cmake create mode 100644 ports/pdal-dimbuilder/vcpkg.json create mode 100644 ports/pdal/dependencies.diff create mode 100644 ports/pdal/external-dimbuilder.diff rename ports/pdal/{fix-find-library-suffix.patch => find-library-suffix.diff} (67%) delete mode 100644 ports/pdal/fix-dependency.patch delete mode 100644 ports/pdal/fix-gcc-13-build.patch delete mode 100644 ports/pdal/fix-unix-compiler-options.patch delete mode 100644 ports/pdal/gdal-3.7.patch delete mode 100644 ports/pdal/install-dimbuilder.patch delete mode 100644 ports/pdal/mingw.patch delete mode 100644 ports/pdal/no-pkgconfig-requires.patch create mode 100644 versions/p-/pdal-dimbuilder.json diff --git a/ports/pdal-dimbuilder/namespace-nl.diff b/ports/pdal-dimbuilder/namespace-nl.diff new file mode 100644 index 0000000000..00b69f5b11 --- /dev/null +++ b/ports/pdal-dimbuilder/namespace-nl.diff @@ -0,0 +1,12 @@ +diff --git a/dimbuilder/DimBuilder.hpp b/dimbuilder/DimBuilder.hpp +index cb6dc54..8bee581 100644 +--- a/dimbuilder/DimBuilder.hpp ++++ b/dimbuilder/DimBuilder.hpp +@@ -35,6 +35,7 @@ + #include + + #include ++namespace NL = nlohmann; + + #include + diff --git a/ports/pdal-dimbuilder/portfile.cmake b/ports/pdal-dimbuilder/portfile.cmake new file mode 100644 index 0000000000..44383dbd88 --- /dev/null +++ b/ports/pdal-dimbuilder/portfile.cmake @@ -0,0 +1,32 @@ +# Host tool needed by pdal. No bells and whistles. +set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) +set(VCPKG_BUILD_TYPE release) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO PDAL/PDAL + REF "${VERSION}" + #[[ + Attention: pdal must be updated together with pdal-dimbuilder + #]] + SHA512 1f9c4383fdbd4e10ef0b30b7148386692f8bd5f19b57a0323d92f2dc55a14fbc6a0d4d60c16c9604cbd3837c0ae8e3c88baebdefd534273952f92f01c5703554 + HEAD_REF master + PATCHES + namespace-nl.diff +) +file(REMOVE_RECURSE "${SOURCE_PATH}/vendor") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}/dimbuilder" + OPTIONS + "-DNLOHMANN_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include" + "-DUTFCPP_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/utf8cpp" +) +vcpkg_cmake_build() + +vcpkg_copy_tools(TOOL_NAMES dimbuilder + SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" + DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" +) + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") diff --git a/ports/pdal-dimbuilder/vcpkg.json b/ports/pdal-dimbuilder/vcpkg.json new file mode 100644 index 0000000000..16bd99f5d6 --- /dev/null +++ b/ports/pdal-dimbuilder/vcpkg.json @@ -0,0 +1,16 @@ +{ + "name": "pdal-dimbuilder", + "version": "2.8.1", + "description": "A tool used by the PDAL build process", + "homepage": "https://pdal.io/", + "license": "BSD-3-Clause", + "supports": "native", + "dependencies": [ + "nlohmann-json", + "utfcpp", + { + "name": "vcpkg-cmake", + "host": true + } + ] +} diff --git a/ports/pdal/dependencies.diff b/ports/pdal/dependencies.diff new file mode 100644 index 0000000000..d166d313ea --- /dev/null +++ b/ports/pdal/dependencies.diff @@ -0,0 +1,209 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dc65543..5bccbce 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -158,12 +158,9 @@ if (WITH_TESTS) + endif() + add_subdirectory(dimbuilder) + add_subdirectory(vendor/arbiter) +-add_subdirectory(vendor/schema-validator) + add_subdirectory(vendor/kazhdan) + add_subdirectory(vendor/lazperf) +-add_subdirectory(vendor/utfcpp) + add_subdirectory(vendor/lepcc) +-add_subdirectory(vendor/h3) + add_subdirectory(tools) + add_subdirectory(apps) + +@@ -220,12 +217,13 @@ add_library(PDAL::PDAL ALIAS ${PDAL_LIB_NAME}) + + + ++find_package(Eigen3 CONFIG REQUIRED) ++target_link_libraries(${PDAL_LIB_NAME} PRIVATE Eigen3::Eigen) + target_include_directories(${PDAL_LIB_NAME} + SYSTEM BEFORE PRIVATE +- ${PDAL_VENDOR_EIGEN_DIR} + ${PDAL_VENDOR_DIR}/kazhdan +- ${PDAL_VENDOR_DIR}/h3/include + ) ++target_link_libraries(${PDAL_LIB_NAME} PRIVATE h3::h3) + target_include_directories(${PDAL_LIB_NAME} + PRIVATE + ${ROOT_DIR} +@@ -263,6 +261,8 @@ target_link_libraries(${PDAL_LIB_NAME} + ${PDAL_LIBDIR} + ${WINSOCK_LIBRARY} + ) ++find_package(nanoflann CONFIG REQUIRED) ++target_link_libraries(${PDAL_LIB_NAME} PRIVATE nanoflann::nanoflann) + + # + # Allow downstream cmake projects to find PDAL header files without +@@ -274,7 +274,7 @@ target_include_directories(${PDAL_LIB_NAME} + + target_compile_definitions(${PDAL_LIB_NAME} + PRIVATE +- H3_PREFIX=PDALH3) ++) + + if(WIN32) + target_compile_definitions(${PDAL_LIB_NAME} +diff --git a/cmake/gdal.cmake b/cmake/gdal.cmake +index 5f68579..a407c60 100644 +--- a/cmake/gdal.cmake ++++ b/cmake/gdal.cmake +@@ -12,7 +12,8 @@ function(gdal_find_version _version) + set(${_version} ${MAJOR}.${MINOR}.${REV} PARENT_SCOPE) + endfunction(gdal_find_version) + +-find_package(GDAL 3.4 REQUIRED) ++find_package(GDAL CONFIG REQUIRED) ++set(GDAL_LIBRARY GDAL::GDAL) + set_package_properties(GDAL PROPERTIES TYPE REQUIRED + PURPOSE "Provides general purpose raster, vector, and reference system support") + if (GDAL_FOUND) +diff --git a/cmake/geotiff.cmake b/cmake/geotiff.cmake +index 1d1e8af..f713c05 100644 +--- a/cmake/geotiff.cmake ++++ b/cmake/geotiff.cmake +@@ -2,7 +2,8 @@ + # GeoTIFF support + # + +-find_package(GeoTIFF REQUIRED 1.3.0) ++find_package(GeoTIFF CONFIG REQUIRED) ++set(GEOTIFF_LIBRARY ${GEOTIFF_LIBRARIES}) + set_package_properties(GeoTIFF PROPERTIES TYPE REQUIRED) + if (GEOTIFF_FOUND) + include_directories("${GEOTIFF_INCLUDE_DIR}") +diff --git a/cmake/h3.cmake b/cmake/h3.cmake +index 398ad6d..fb3c9ad 100644 +--- a/cmake/h3.cmake ++++ b/cmake/h3.cmake +@@ -2,5 +2,6 @@ + # H3 configuration. + # + +-set(PDAL_H3_LIB_NAME pdal_h3) ++find_package(h3 CONFIG REQUIRED) ++set(PDAL_H3_LIB_NAME h3::h3) + +diff --git a/cmake/schema-validator.cmake b/cmake/schema-validator.cmake +index 1f9f996..aeb598c 100644 +--- a/cmake/schema-validator.cmake ++++ b/cmake/schema-validator.cmake +@@ -1,5 +1,5 @@ + # + # N Lohmann JSON schema validator handler + # +-include(${PDAL_CMAKE_DIR}/nlohmann.cmake) +-set(JSON_SCHEMA_LIB_NAME pdal_json_schema) ++find_package(nlohmann_json_schema_validator CONFIG REQUIRED) ++set(JSON_SCHEMA_LIB_NAME nlohmann_json_schema_validator::validator) +diff --git a/cmake/utfcpp.cmake b/cmake/utfcpp.cmake +index 6543ff6..dc6fac8 100644 +--- a/cmake/utfcpp.cmake ++++ b/cmake/utfcpp.cmake +@@ -1,6 +1,7 @@ + # + # UTF CPP + # +-set(UTFCPP_INCLUDE_DIR ${PDAL_VENDOR_DIR}/utfcpp/source) ++find_package(utf8cpp CONFIG REQUIRED) ++set(UTFCPP_INCLUDE_DIR "") + set(UTFCPP_LIB_NAME utf8::cpp) + +diff --git a/cmake/zstd.cmake b/cmake/zstd.cmake +index dfe3dc0..9f699e6 100644 +--- a/cmake/zstd.cmake ++++ b/cmake/zstd.cmake +@@ -4,7 +4,10 @@ + option(WITH_ZSTD + "Build support for compression/decompression with Zstd." TRUE) + if (WITH_ZSTD) +- find_package(ZSTD QUIET) ++ find_package(ZSTD NAMES zstd REQUIRED) ++ set(ZSTD_INCLUDE_DIRS "") ++ set(ZSTD_LIBRARIES zstd::libzstd) ++ set(ZSTD_STATIC_LIB zstd::libzstd) + set_package_properties(ZSTD PROPERTIES TYPE + PURPOSE "General compression support") + if (ZSTD_FOUND) +diff --git a/filters/H3Filter.cpp b/filters/H3Filter.cpp +index 6eb10a2..153c3ee 100644 +--- a/filters/H3Filter.cpp ++++ b/filters/H3Filter.cpp +@@ -45,7 +45,9 @@ + #include + #include + +-#include ++#include

++#define PDALH3degsToRads degsToRads ++#define PDALH3latLngToCell latLngToCell + + namespace pdal + { +diff --git a/pdal/JsonFwd.hpp b/pdal/JsonFwd.hpp +index f764961..f64dcc6 100644 +--- a/pdal/JsonFwd.hpp ++++ b/pdal/JsonFwd.hpp +@@ -1,3 +1,4 @@ ++#include + #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ + #define INCLUDE_NLOHMANN_JSON_FWD_HPP_ + +diff --git a/pdal/private/KDImpl.hpp b/pdal/private/KDImpl.hpp +index 473ffba..a69431f 100644 +--- a/pdal/private/KDImpl.hpp ++++ b/pdal/private/KDImpl.hpp +@@ -34,7 +34,8 @@ + + #pragma once + +-#include ++#include ++#define SearchParams SearchParameters + + namespace pdal + { +@@ -116,7 +117,7 @@ public: + PointIdList radius(double const& x, double const& y, double const& r) const + { + PointIdList output; +- std::vector> ret_matches; ++ std::vector> ret_matches; + nanoflann::SearchParams params; + params.sorted = true; + +@@ -247,7 +248,7 @@ public: + PointIdList radius(double x, double y, double z, double r) const + { + PointIdList output; +- std::vector> ret_matches; ++ std::vector> ret_matches; + nanoflann::SearchParams params; + params.sorted = true; + +@@ -330,7 +331,7 @@ public: + PointIdList radius(PointId idx, double r) const + { + PointIdList output; +- std::vector> ret_matches; ++ std::vector> ret_matches; + nanoflann::SearchParams params; + params.sorted = true; + +diff --git a/tools/lasdump/CMakeLists.txt b/tools/lasdump/CMakeLists.txt +index b15d595..a452d14 100644 +--- a/tools/lasdump/CMakeLists.txt ++++ b/tools/lasdump/CMakeLists.txt +@@ -10,6 +10,7 @@ add_executable(lasdump + ) + + target_link_libraries(lasdump PRIVATE ++ ${UTFCPP_LIB_NAME} + ${PDAL_LAZPERF_LIB_NAME} + ) + target_include_directories(lasdump PRIVATE diff --git a/ports/pdal/external-dimbuilder.diff b/ports/pdal/external-dimbuilder.diff new file mode 100644 index 0000000000..2aefb2884b --- /dev/null +++ b/ports/pdal/external-dimbuilder.diff @@ -0,0 +1,11 @@ +diff --git a/dimbuilder/CMakeLists.txt b/dimbuilder/CMakeLists.txt +index 99109b7..fa2355d 100644 +--- a/dimbuilder/CMakeLists.txt ++++ b/dimbuilder/CMakeLists.txt +@@ -1,3 +1,6 @@ ++add_executable(dimbuilder IMPORTED GLOBAL) ++set_target_properties(dimbuilder PROPERTIES IMPORTED_LOCATION "${DIMBUILDER_EXECUTABLE}") ++return() + # + # The seemingly strange arrangement of this cmake file allows you to build + # this application as a standalone. diff --git a/ports/pdal/fix-find-library-suffix.patch b/ports/pdal/find-library-suffix.diff similarity index 67% rename from ports/pdal/fix-find-library-suffix.patch rename to ports/pdal/find-library-suffix.diff index be3cd71eef..afbefc541b 100644 --- a/ports/pdal/fix-find-library-suffix.patch +++ b/ports/pdal/find-library-suffix.diff @@ -1,11 +1,12 @@ diff --git a/cmake/libraries.cmake b/cmake/libraries.cmake -index 665bc53..fcdcf2c 100644 +index 6847cf6..47e9748 100644 --- a/cmake/libraries.cmake +++ b/cmake/libraries.cmake -@@ -1,6 +1,3 @@ - # Build shared libraries by default. +@@ -2,7 +2,6 @@ set(PDAL_LIB_TYPE "SHARED") --if (WIN32) + if (WIN32) - set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_IMPORT_LIBRARY_SUFFIX}) --endif() + endif() + + diff --git a/ports/pdal/fix-dependency.patch b/ports/pdal/fix-dependency.patch deleted file mode 100644 index 60011e3ab6..0000000000 --- a/ports/pdal/fix-dependency.patch +++ /dev/null @@ -1,111 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index d13d417..011608d 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -269,7 +269,7 @@ target_link_libraries(${PDAL_BASE_LIB_NAME} - PRIVATE - ${CMAKE_THREAD_LIBS_INIT} - ${CMAKE_DL_LIBS} -- ${GDAL_LIBRARY} -+ ${GDAL_LIBRARIES} - ${GEOTIFF_LIBRARY} - ${LIBXML2_LIBRARIES} - ${ZLIB_LIBRARIES} -diff --git a/cmake/zstd.cmake b/cmake/zstd.cmake -index dfe3dc0..42a78d6 100644 ---- a/cmake/zstd.cmake -+++ b/cmake/zstd.cmake -@@ -4,7 +4,14 @@ - option(WITH_ZSTD - "Build support for compression/decompression with Zstd." TRUE) - if (WITH_ZSTD) -- find_package(ZSTD QUIET) -+ find_package(ZSTD NAMES zstd REQUIRED) -+ set(ZSTD_INCLUDE_DIRS "") -+ if(TARGET zstd::libzstd_static) -+ set(ZSTD_LIBRARIES zstd::libzstd_static) -+ set(ZSTD_STATIC_LIB zstd::libzstd_static) -+ else() -+ set(ZSTD_LIBRARIES zstd::libzstd_shared) -+ endif() - set_package_properties(ZSTD PROPERTIES TYPE - PURPOSE "General compression support") - if (ZSTD_FOUND) -diff --git a/pdal/private/KDImpl.hpp b/pdal/private/KDImpl.hpp -index 473ffba..db6a7b0 100644 ---- a/pdal/private/KDImpl.hpp -+++ b/pdal/private/KDImpl.hpp -@@ -97,7 +97,7 @@ public: - resultSet.init(&output[0], &out_dist_sqr[0]); - - std::array pt { x, y }; -- m_index.findNeighbors(resultSet, &pt[0], nanoflann::SearchParams(10)); -+ m_index.findNeighbors(resultSet, &pt[0], nanoflann::SearchParameters(10)); - return output; - } - -@@ -110,14 +110,14 @@ public: - resultSet.init(&indices->front(), &sqr_dists->front()); - - std::array pt { x, y }; -- m_index.findNeighbors(resultSet, &pt[0], nanoflann::SearchParams(10)); -+ m_index.findNeighbors(resultSet, &pt[0], nanoflann::SearchParameters(10)); - } - - PointIdList radius(double const& x, double const& y, double const& r) const - { - PointIdList output; -- std::vector> ret_matches; -- nanoflann::SearchParams params; -+ std::vector> ret_matches; -+ nanoflann::SearchParameters params; - params.sorted = true; - - std::array pt { x, y }; -@@ -217,7 +217,7 @@ public: - // neighbor at the given stride. - nanoflann::KNNResultSet resultSet(k2); - resultSet.init(&output[0], &out_dist_sqr[0]); -- m_index.findNeighbors(resultSet, &pt[0], nanoflann::SearchParams()); -+ m_index.findNeighbors(resultSet, &pt[0], nanoflann::SearchParameters()); - - // Perform the downsampling if a stride is provided. - if (stride > 1) -@@ -241,14 +241,14 @@ public: - pt.push_back(x); - pt.push_back(y); - pt.push_back(z); -- m_index.findNeighbors(resultSet, &pt[0], nanoflann::SearchParams(10)); -+ m_index.findNeighbors(resultSet, &pt[0], nanoflann::SearchParameters(10)); - } - - PointIdList radius(double x, double y, double z, double r) const - { - PointIdList output; -- std::vector> ret_matches; -- nanoflann::SearchParams params; -+ std::vector> ret_matches; -+ nanoflann::SearchParameters params; - params.sorted = true; - - std::vector pt { x, y, z }; -@@ -315,7 +315,7 @@ public: - // neighbor at the given stride. - nanoflann::KNNResultSet resultSet(k2); - resultSet.init(&output[0], &out_dist_sqr[0]); -- m_index.findNeighbors(resultSet, &pt[0], nanoflann::SearchParams()); -+ m_index.findNeighbors(resultSet, &pt[0], nanoflann::SearchParameters()); - - // Perform the downsampling if a stride is provided. - if (stride > 1) -@@ -330,8 +330,8 @@ public: - PointIdList radius(PointId idx, double r) const - { - PointIdList output; -- std::vector> ret_matches; -- nanoflann::SearchParams params; -+ std::vector> ret_matches; -+ nanoflann::SearchParameters params; - params.sorted = true; - - std::vector pt; diff --git a/ports/pdal/fix-gcc-13-build.patch b/ports/pdal/fix-gcc-13-build.patch deleted file mode 100644 index 888826c171..0000000000 --- a/ports/pdal/fix-gcc-13-build.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/plugins/e57/libE57Format/include/E57Format.h b/plugins/e57/libE57Format/include/E57Format.h -index 267d8c77bb..89d2b36a09 100644 ---- a/plugins/e57/libE57Format/include/E57Format.h -+++ b/plugins/e57/libE57Format/include/E57Format.h -@@ -31,6 +31,7 @@ - - //! @file E57Format.h header file for the E57 API - -+#include - #include - #include - #include diff --git a/ports/pdal/fix-unix-compiler-options.patch b/ports/pdal/fix-unix-compiler-options.patch deleted file mode 100644 index 8143a568df..0000000000 --- a/ports/pdal/fix-unix-compiler-options.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1705a8426..d13d41786 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -192,7 +192,7 @@ add_subdirectory(apps) - # so that users only need link libpdalcpp. - # - if (APPLE) -- set(PDAL_REEXPORT "-Wl,-reexport_library,$") -+ set(PDAL_REEXPORT "-Wl$-reexport_library$$") - # - # This allows the rpath reference for the reexported library (above) to - # be found. diff --git a/ports/pdal/gdal-3.7.patch b/ports/pdal/gdal-3.7.patch deleted file mode 100644 index 4d3944e0a9..0000000000 --- a/ports/pdal/gdal-3.7.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/pdal/Geometry.cpp b/pdal/Geometry.cpp -index 608bf86..8b010d3 100644 ---- a/pdal/Geometry.cpp -+++ b/pdal/Geometry.cpp -@@ -153,7 +153,7 @@ Geometry& Geometry::operator=(const Geometry& input) - - bool Geometry::srsValid() const - { -- OGRSpatialReference *srs = m_geom->getSpatialReference(); -+ const OGRSpatialReference *srs = m_geom->getSpatialReference(); - return srs && srs->GetRoot(); - } - -@@ -172,7 +172,7 @@ Utils::StatusWithReason Geometry::transform(SpatialReference out) - return StatusWithReason(-2, - "Geometry::transform() failed. NULL target SRS."); - -- OGRSpatialReference *inSrs = m_geom->getSpatialReference(); -+ const OGRSpatialReference *inSrs = m_geom->getSpatialReference(); - SrsTransform transform(*inSrs, OGRSpatialReference(out.getWKT().data())); - if (m_geom->transform(transform.get()) != OGRERR_NONE) - return StatusWithReason(-1, "Geometry::transform() failed."); diff --git a/ports/pdal/install-dimbuilder.patch b/ports/pdal/install-dimbuilder.patch deleted file mode 100644 index 1f156de424..0000000000 --- a/ports/pdal/install-dimbuilder.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff --git a/dimbuilder/CMakeLists.txt b/dimbuilder/CMakeLists.txt -index 615e2e9..db44505 100644 ---- a/dimbuilder/CMakeLists.txt -+++ b/dimbuilder/CMakeLists.txt -@@ -39,3 +39,5 @@ target_link_libraries(dimbuilder - if (MSVC) - target_link_options(dimbuilder PRIVATE /SUBSYSTEM:CONSOLE /ENTRY:mainCRTStartup) - endif(MSVC) -+ -+install(TARGETS dimbuilder) diff --git a/ports/pdal/mingw.patch b/ports/pdal/mingw.patch deleted file mode 100644 index 3f6cb229bc..0000000000 --- a/ports/pdal/mingw.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/io/OptechReader.cpp b/io/OptechReader.cpp -index bd12e70..2b7846b 100644 ---- a/io/OptechReader.cpp -+++ b/io/OptechReader.cpp -@@ -60,7 +60,7 @@ std::string OptechReader::getName() const - return s_info.name; - } - --#ifndef _WIN32 -+#ifndef _MSC_VER - const size_t OptechReader::MaximumNumberOfReturns; - const size_t OptechReader::MaxNumRecordsInBuffer; - const size_t OptechReader::NumBytesInRecord; diff --git a/ports/pdal/no-pkgconfig-requires.patch b/ports/pdal/no-pkgconfig-requires.patch deleted file mode 100644 index 1f0841e2c7..0000000000 --- a/ports/pdal/no-pkgconfig-requires.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/apps/pdal.pc.in b/apps/pdal.pc.in -index 6885221..cd2136c 100644 ---- a/apps/pdal.pc.in -+++ b/apps/pdal.pc.in -@@ -5,7 +5,6 @@ includedir=@CMAKE_INSTALL_PREFIX@/include - - Name: PDAL - Description: Point Data Abstraction Library --Requires: @PKGCONFIG_LIBRARY_DEFINITIONS@ - Version: @PDAL_VERSION@ - Libs: -L${libdir} -l@PDAL_LIB_NAME@ - Cflags: -I${includedir}/pdal @PDAL_CONFIG_DEFINITIONS@ diff --git a/ports/pdal/portfile.cmake b/ports/pdal/portfile.cmake index ee6c1467e3..16267fc97f 100644 --- a/ports/pdal/portfile.cmake +++ b/ports/pdal/portfile.cmake @@ -4,37 +4,36 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PDAL/PDAL REF "${VERSION}" - SHA512 cefc610682f8dafd5c186ed612edc2db904690c3a53d5111ece0965d197053b064bd8cbd9adab293c47ec1894949b5e33623b0f0e6b6cad35617a20f0039bd79 + #[[ + Attention: pdal-dimbuilder must be updated together with pdal + #]] + SHA512 1f9c4383fdbd4e10ef0b30b7148386692f8bd5f19b57a0323d92f2dc55a14fbc6a0d4d60c16c9604cbd3837c0ae8e3c88baebdefd534273952f92f01c5703554 HEAD_REF master PATCHES - fix-dependency.patch - fix-unix-compiler-options.patch - fix-find-library-suffix.patch - no-pkgconfig-requires.patch + dependencies.diff + external-dimbuilder.diff + find-library-suffix.diff no-rpath.patch - fix-gcc-13-build.patch #upstream PR: https://github.com/PDAL/PDAL/pull/4039 - gdal-3.7.patch - mingw.patch - install-dimbuilder.patch ) - -# Prefer pristine CMake find modules + wrappers and config files from vcpkg. -foreach(package IN ITEMS Curl GeoTIFF ICONV ZSTD) - file(REMOVE "${SOURCE_PATH}/cmake/modules/Find${package}.cmake") -endforeach() - -# De-vendoring 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}/pdal/JsonFwd.hpp" + "${SOURCE_PATH}/vendor/schema-validator" + "${SOURCE_PATH}/vendor/utfcpp" ) -file(INSTALL "${CURRENT_INSTALLED_DIR}/include/nanoflann.hpp" DESTINATION "${SOURCE_PATH}/vendor/nanoflann") -file(INSTALL "${CURRENT_INSTALLED_DIR}/include/nlohmann/json.hpp" DESTINATION "${SOURCE_PATH}/vendor/nlohmann/nlohmann") -file(APPEND "${SOURCE_PATH}/vendor/nlohmann/nlohmann/json.hpp" "namespace NL = nlohmann;\n") -file(INSTALL "${CURRENT_INSTALLED_DIR}/include/nlohmann/json_fwd.hpp" DESTINATION "${SOURCE_PATH}/pdal") -file(RENAME "${SOURCE_PATH}/pdal/json_fwd.hpp" "${SOURCE_PATH}/pdal/JsonFwd.hpp") -file(APPEND "${SOURCE_PATH}/pdal/JsonFwd.hpp" "namespace NL = nlohmann;\n") +# 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 \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 \n") unset(ENV{OSGEO4W_HOME}) @@ -43,31 +42,22 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS draco BUILD_PLUGIN_DRACO e57 BUILD_PLUGIN_E57 hdf5 BUILD_PLUGIN_HDF - i3s BUILD_PLUGIN_I3S lzma WITH_LZMA pgpointcloud BUILD_PLUGIN_PGPOINTCLOUD zstd WITH_ZSTD ) -if(VCPKG_CROSSCOMPILING) - set(DIMBUILDER_EXECUTABLE "-DDIMBUILDER_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/pdal/dimbuilder${VCPKG_HOST_EXECUTABLE_SUFFIX}") -endif() - -vcpkg_find_acquire_program(PKGCONFIG) 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=. - "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" -DWITH_TESTS:BOOL=OFF -DWITH_COMPLETION:BOOL=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Libexecinfo:BOOL=ON -DCMAKE_DISABLE_FIND_PACKAGE_Libunwind:BOOL=ON ${FEATURE_OPTIONS} - ${DIMBUILDER_EXECUTABLE} - MAYBE_UNUSED_VARIABLES - PKG_CONFIG_EXECUTABLE ) vcpkg_cmake_install() @@ -84,7 +74,7 @@ file(GLOB pdal_unsupported "${CURRENT_PACKAGES_DIR}/debug/bin/pdal-config" ) file(REMOVE ${pdal_unsupported}) -vcpkg_copy_tools(TOOL_NAMES pdal dimbuilder AUTO_CLEAN) +vcpkg_copy_tools(TOOL_NAMES pdal AUTO_CLEAN) # Post-install clean-up file(REMOVE_RECURSE @@ -96,37 +86,28 @@ file(REMOVE_RECURSE file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(READ "${SOURCE_PATH}/LICENSE.txt" pdal_license) -file(READ "${SOURCE_PATH}/vendor/arbiter/LICENSE" arbiter_license) -file(READ "${SOURCE_PATH}/vendor/kazhdan/PoissonRecon.h" kazhdan_license) -string(REGEX REPLACE "^/\\*\n|\\*/.*\$" "" kazhdan_license "${kazhdan_license}") -file(READ "${SOURCE_PATH}/vendor/lazperf/lazperf.hpp" lazperf_license) -string(REGEX REPLACE "^/\\*\n|\\*/.*\$" "" lazperf_license "${lazperf_license}") -file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" -"${pdal_license} ---- +set(arbiter_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/arbiter LICENSE") +file(COPY_FILE "${SOURCE_PATH}/vendor/arbiter/LICENSE" "${arbiter_license}") -Files in vendor/arbiter/: +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}") -${arbiter_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}") -Files in vendor/kazhdan/: +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}") -${kazhdan_license} ---- - -Files in vendor/lazperf/: - -${lazperf_license} ---- - -Files in vendor/eigen: - -Most Eigen source code is subject to the terms of the Mozilla Public License -v. 2.0. You can obtain a copy the MPL 2.0 at http://mozilla.org/MPL/2.0/. - -Some files included in Eigen are under one of the following licenses: - - Apache License, Version 2.0 - - BSD 3-Clause \"New\" or \"Revised\" License -") +vcpkg_install_copyright(FILE_LIST + "${SOURCE_PATH}/LICENSE.txt" + "${arbiter_license}" + "${kazhdan_license}" + "${lazperf_license}" + "${lepcc_license}" +) diff --git a/ports/pdal/usage b/ports/pdal/usage index 759bf7feb7..6c6d9678e7 100644 --- a/ports/pdal/usage +++ b/ports/pdal/usage @@ -1,9 +1,8 @@ -The package pdal provides CMake variables: +pdal provides CMake targets: - find_package(PDAL CONFIG REQUIRED) - target_include_directories(main PRIVATE ${PDAL_INCLUDE_DIRS}) - target_link_libraries(main PRIVATE ${PDAL_LIBRARIES}) + find_package(PDAL CONFIG REQUIRED) + target_link_libraries(main PRIVATE $) If necessary, override the default plugin search path by setting the environment variable PDAL_DRIVER_PATH to a list of directories that -pdal should search for plugins. +PDAL should search for plugins. diff --git a/ports/pdal/vcpkg.json b/ports/pdal/vcpkg.json index 48fe2abe65..bc7eff9173 100644 --- a/ports/pdal/vcpkg.json +++ b/ports/pdal/vcpkg.json @@ -1,20 +1,21 @@ { "name": "pdal", - "version": "2.5.3", - "port-version": 3, + "version": "2.8.1", "description": "PDAL - Point Data Abstraction Library is a library for manipulating point cloud data.", "homepage": "https://pdal.io/", "license": null, - "supports": "!(windows & staticcrt)", "dependencies": [ { "name": "curl", "default-features": false }, + "eigen3", { "name": "gdal", "default-features": false }, + "h3", + "json-schema-validator", "libgeotiff", { "name": "libxml2", @@ -25,10 +26,10 @@ "nanoflann", "nlohmann-json", { - "name": "pdal", - "host": true, - "default-features": false + "name": "pdal-dimbuilder", + "host": true }, + "utfcpp", { "name": "vcpkg-cmake", "host": true @@ -36,7 +37,8 @@ { "name": "vcpkg-cmake-config", "host": true - } + }, + "zlib" ], "default-features": [ "supported-plugins" @@ -63,12 +65,6 @@ } ] }, - "i3s": { - "description": "Build the SLPK/I3S plugins", - "dependencies": [ - "zlib" - ] - }, "liblzma": { "description": "Support for compression/decompression with LZMA", "dependencies": [ @@ -78,7 +74,10 @@ "pgpointcloud": { "description": "Build the PgPointCloud plugin", "dependencies": [ - "libpq" + { + "name": "libpq", + "default-features": false + } ] }, "supported-plugins": { @@ -89,8 +88,7 @@ "default-features": false, "features": [ "draco", - "e57", - "i3s" + "e57" ] }, { diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index ccefd7d84e..985a5beb97 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -864,6 +864,7 @@ pcl:x64-android=fail pdal:arm-neon-android=fail pdal:arm64-android=fail pdal:x64-android=fail +pdal:x64-windows-static=fail # ONLY_DYNAMIC_LIBRARY pixman:arm-neon-android=fail platform-folders:arm64-uwp=fail platform-folders:x64-uwp=fail diff --git a/versions/baseline.json b/versions/baseline.json index d51d91a68b..ee87348034 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -6909,13 +6909,17 @@ "port-version": 0 }, "pdal": { - "baseline": "2.5.3", - "port-version": 3 + "baseline": "2.8.1", + "port-version": 0 }, "pdal-c": { "baseline": "2.2.0", "port-version": 0 }, + "pdal-dimbuilder": { + "baseline": "2.8.1", + "port-version": 0 + }, "pdcurses": { "baseline": "3.9", "port-version": 6 diff --git a/versions/p-/pdal-dimbuilder.json b/versions/p-/pdal-dimbuilder.json new file mode 100644 index 0000000000..712a9e5b4d --- /dev/null +++ b/versions/p-/pdal-dimbuilder.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "585539caac69de6a9c8b9e13c69f614126bac008", + "version": "2.8.1", + "port-version": 0 + } + ] +} diff --git a/versions/p-/pdal.json b/versions/p-/pdal.json index dc5b4daf75..289afa30ee 100644 --- a/versions/p-/pdal.json +++ b/versions/p-/pdal.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "d05e42385481a0708b329e583cc70f8ee102305f", + "version": "2.8.1", + "port-version": 0 + }, { "git-tree": "91391b35fb1af3810e79110564bcf6e668dd9194", "version": "2.5.3",