aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/libraries/pdal/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/pdal/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/pdal/default.nix98
1 files changed, 98 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/pdal/default.nix b/nixpkgs/pkgs/development/libraries/pdal/default.nix
new file mode 100644
index 00000000000..2059b4db7fb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/pdal/default.nix
@@ -0,0 +1,98 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, pkg-config
+# , openscenegraph
+, curl
+, gdal
+, hdf5-cpp
+, LASzip
+, libe57format
+, libgeotiff
+, libxml2
+, postgresql
+, tiledb
+, xercesc
+, zlib
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+ pname = "pdal";
+ version = "2.1.0";
+
+ src = fetchFromGitHub {
+ owner = "PDAL";
+ repo = "PDAL";
+ rev = version;
+ sha256 = "0zb3zjqgmjjryb648c1hmwh1nfa7893bjzbqpmr6shjxvzgnj9p6";
+ };
+
+ patches = [
+ # Fix duplicate paths like
+ # /nix/store/7iafqfmjdlxqim922618wg87cclrpznr-PDAL-2.1.0//nix/store/7iafqfmjdlxqim922618wg87cclrpznr-PDAL-2.1.0/lib
+ # similar to https://github.com/NixOS/nixpkgs/pull/82654.
+ # TODO Remove on release > 2.1.0
+ (fetchpatch {
+ name = "pdal-Fixup-install-config.patch";
+ url = "https://github.com/PDAL/PDAL/commit/2f887ef624db50c6e20f091f34bb5d3e65b5c5c8.patch";
+ sha256 = "0pdw9v5ypq7w9i7qzgal110hjb9nqi386jvy3x2h4vf1dyalzid8";
+ })
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ pkg-config
+ ];
+
+ buildInputs = [
+ # openscenegraph
+ curl
+ gdal
+ hdf5-cpp
+ LASzip
+ libe57format
+ libgeotiff
+ libxml2
+ postgresql
+ tiledb
+ xercesc
+ zlib
+ zstd
+ ];
+
+ cmakeFlags = [
+ "-DBUILD_PLUGIN_E57=ON"
+ "-DBUILD_PLUGIN_HDF=ON"
+ "-DBUILD_PLUGIN_PGPOINTCLOUD=ON"
+ "-DBUILD_PLUGIN_TILEDB=ON"
+
+ # Plugins that can probably be made working relatively easily:
+ # As of writing, seems to be incompatible (build error):
+ # error: no matching function for call to 'osg::TriangleFunctor<pdal::CollectTriangles>::operator()(const Vec3&, const Vec3&, const Vec3&)'
+ "-DBUILD_PLUGIN_OPENSCENEGRAPH=OFF" # requires OpenGL
+
+ # Plugins can probably not be made work easily:
+ "-DBUILD_PLUGIN_CPD=OFF"
+ "-DBUILD_PLUGIN_FBX=OFF" # Autodesk FBX SDK is gratis+proprietary; not packaged in nixpkgs
+ "-DBUILD_PLUGIN_GEOWAVE=OFF"
+ "-DBUILD_PLUGIN_I3S=OFF"
+ "-DBUILD_PLUGIN_ICEBRIDGE=OFF"
+ "-DBUILD_PLUGIN_MATLAB=OFF"
+ "-DBUILD_PLUGIN_MBIO=OFF"
+ "-DBUILD_PLUGIN_MRSID=OFF"
+ "-DBUILD_PLUGIN_NITF=OFF"
+ "-DBUILD_PLUGIN_OCI=OFF"
+ "-DBUILD_PLUGIN_RDBLIB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
+ "-DBUILD_PLUGIN_RIVLIB=OFF"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "PDAL is Point Data Abstraction Library. GDAL for point cloud data.";
+ homepage = "https://pdal.io";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ nh2 ];
+ platforms = platforms.all;
+ };
+}