lol
1{ lib, stdenv
2, fetchFromGitHub
3, fetchpatch
4, cmake
5, pkg-config
6, openscenegraph
7, curl
8, gdal
9, hdf5-cpp
10, LASzip
11, enableE57 ? lib.meta.availableOn stdenv.hostPlatform libe57format
12, libe57format
13, libgeotiff
14, libxml2
15, postgresql
16, tiledb
17, xercesc
18, zlib
19, zstd
20}:
21
22stdenv.mkDerivation rec {
23 pname = "pdal";
24 version = "2.4.0";
25
26 src = fetchFromGitHub {
27 owner = "PDAL";
28 repo = "PDAL";
29 rev = version;
30 sha256 = "sha256-w9Fu4Op6OdaxdvOUM+glpJUEZq//EwRD2lqzYrMXk8w=";
31 };
32
33 nativeBuildInputs = [
34 cmake
35 pkg-config
36 ];
37
38 buildInputs = [
39 openscenegraph
40 curl
41 gdal
42 hdf5-cpp
43 LASzip
44 libgeotiff
45 libxml2
46 postgresql
47 tiledb
48 xercesc
49 zlib
50 zstd
51 ] ++ lib.optionals enableE57 [
52 libe57format
53 ];
54
55 cmakeFlags = [
56 "-DBUILD_PLUGIN_E57=${if enableE57 then "ON" else "OFF"}"
57 "-DBUILD_PLUGIN_HDF=ON"
58 "-DBUILD_PLUGIN_PGPOINTCLOUD=ON"
59 "-DBUILD_PLUGIN_TILEDB=ON"
60
61 # Plugins can probably not be made work easily:
62 "-DBUILD_PLUGIN_CPD=OFF"
63 "-DBUILD_PLUGIN_FBX=OFF" # Autodesk FBX SDK is gratis+proprietary; not packaged in nixpkgs
64 "-DBUILD_PLUGIN_GEOWAVE=OFF"
65 "-DBUILD_PLUGIN_I3S=OFF"
66 "-DBUILD_PLUGIN_ICEBRIDGE=OFF"
67 "-DBUILD_PLUGIN_MATLAB=OFF"
68 "-DBUILD_PLUGIN_MBIO=OFF"
69 "-DBUILD_PLUGIN_MRSID=OFF"
70 "-DBUILD_PLUGIN_NITF=OFF"
71 "-DBUILD_PLUGIN_OCI=OFF"
72 "-DBUILD_PLUGIN_RDBLIB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
73 "-DBUILD_PLUGIN_RIVLIB=OFF"
74 ];
75
76 meta = with lib; {
77 description = "PDAL is Point Data Abstraction Library. GDAL for point cloud data";
78 homepage = "https://pdal.io";
79 license = licenses.bsd3;
80 maintainers = with maintainers; [ nh2 ];
81 platforms = platforms.all;
82 };
83}