commit 38bf55cbe94230f51373dc58af5acb6db6824d7a
parent 8dc762e6aa0cc5e4221c437efd5602ef5de4f379
Author: Nikolay Korotkiy <sikmir@disroot.org>
Date: Fri, 7 Nov 2025 22:47:31 +0400
Add geoflow
Diffstat:
6 files changed, 275 insertions(+), 0 deletions(-)
diff --git a/pkgs/by-name/ge/geoflow/package.nix b/pkgs/by-name/ge/geoflow/package.nix
@@ -0,0 +1,54 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ glfw3,
+ nlohmann_json,
+ proj,
+ sqlite,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "geoflow";
+ version = "0.3.7";
+
+ src = fetchFromGitHub {
+ owner = "geoflow3d";
+ repo = "geoflow";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-tfMRyBhFgfdR8U9iu5o8QFBEToHi244AUA4IGhFmm+I=";
+ fetchSubmodules = true;
+ };
+
+ postPatch = ''
+ substituteInPlace apps/CMakeLists.txt --replace-fail "/Applications" "$out/Applications"
+ '';
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ glfw3
+ nlohmann_json
+ proj
+ sqlite
+ ];
+
+ cmakeFlags = [
+ (lib.cmakeFeature "GF_PLUGIN_FOLDER" "${placeholder "out"}/lib/geoflow-plugins")
+ ];
+
+ env.NIX_CFLAGS_COMPILE = toString (
+ lib.optionals stdenv.cc.isClang [
+ "-Wno-error=missing-template-arg-list-after-template-kw"
+ ]
+ );
+
+ meta = {
+ description = "flowchart tool for geo-spatial data processing";
+ homepage = "https://github.com/geoflow3d/geoflow";
+ license = lib.licenses.gpl3Plus;
+ maintainers = [ lib.maintainers.sikmir ];
+ mainProgram = "geof";
+ };
+})
diff --git a/pkgs/by-name/gf/gfp-basic3d/package.nix b/pkgs/by-name/gf/gfp-basic3d/package.nix
@@ -0,0 +1,39 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ geoflow,
+ nlohmann_json,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "gfp-basic3d";
+ version = "0.4.18";
+
+ src = fetchFromGitHub {
+ owner = "geoflow3d";
+ repo = "gfp-basic3d";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-hSf5c5fnJQJHNPxLtZZZJa2JsOuje1dH6Q9YtJz82h4=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ geoflow
+ nlohmann_json
+ ];
+
+ installPhase = ''
+ install -Dm644 gfp_core_io.so -t $out/lib/geoflow-plugins
+ '';
+
+ meta = {
+ description = "Various 3D format writers for geoflow (CityJSON, PLY, OBJ)";
+ homepage = "https://github.com/geoflow3d/gfp-basic3d";
+ license = lib.licenses.gpl3Plus;
+ maintainers = [ lib.maintainers.sikmir ];
+ };
+})
diff --git a/pkgs/by-name/gf/gfp-building-reconstruction/package.nix b/pkgs/by-name/gf/gfp-building-reconstruction/package.nix
@@ -0,0 +1,50 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ cgal,
+ eigen,
+ geoflow,
+ LAStools,
+ nlohmann_json,
+ pdal,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "gfp-building-reconstruction";
+ version = "0.4.8";
+
+ src = fetchFromGitHub {
+ owner = "geoflow3d";
+ repo = "gfp-building-reconstruction";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-ivr7b6Te5RoEuuyC5G9Rs08iQeDJFBhVoXSI3eFEU1w=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ cgal
+ eigen
+ geoflow
+ LAStools
+ nlohmann_json
+ pdal
+ ];
+
+ cmakeFlags = [ (lib.cmakeBool "GFP_WITH_PDAL" true) ];
+
+ installPhase = ''
+ install -Dm644 gfp_buildingreconstruction.so -t $out/lib/geoflow-plugins
+ '';
+
+ meta = {
+ description = "Geoflow plugin for building LoD2 reconstruction from a point cloud";
+ homepage = "https://github.com/geoflow3d/gfp-building-reconstruction";
+ license = lib.licenses.gpl3Plus;
+ maintainers = [ lib.maintainers.sikmir ];
+ broken = true;
+ };
+})
diff --git a/pkgs/by-name/gf/gfp-gdal/package.nix b/pkgs/by-name/gf/gfp-gdal/package.nix
@@ -0,0 +1,43 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ gdal,
+ geoflow,
+ geos,
+ nlohmann_json,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "gfp-gdal";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "geoflow3d";
+ repo = "gfp-gdal";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-u4u4xJm2FaCg2TO/CRtt284VrQgGrQhlDy24pfhr0Uw=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ gdal
+ geoflow
+ geos
+ nlohmann_json
+ ];
+
+ installPhase = ''
+ install -Dm644 gfp_gdal.so -t $out/lib/geoflow-plugins
+ '';
+
+ meta = {
+ description = "OGR reader and writer for geoflow";
+ homepage = "https://github.com/geoflow3d/gfp-gdal";
+ license = lib.licenses.gpl3Plus;
+ maintainers = [ lib.maintainers.sikmir ];
+ };
+})
diff --git a/pkgs/by-name/gf/gfp-las/package.nix b/pkgs/by-name/gf/gfp-las/package.nix
@@ -0,0 +1,41 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ geoflow,
+ LAStools,
+ nlohmann_json,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "gfp-las";
+ version = "0.3.1";
+
+ src = fetchFromGitHub {
+ owner = "geoflow3d";
+ repo = "gfp-las";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-05seXLQm2TAFLRSN2Fiar5j6bYZP9AYWjdM0xXKKHuw=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ geoflow
+ LAStools
+ nlohmann_json
+ ];
+
+ installPhase = ''
+ install -Dm644 gfp_las.so -t $out/lib/geoflow-plugins
+ '';
+
+ meta = {
+ description = "LAS reader and writer for geoflow";
+ homepage = "https://github.com/geoflow3d/gfp-las";
+ license = lib.licenses.gpl3Plus;
+ maintainers = [ lib.maintainers.sikmir ];
+ };
+})
diff --git a/pkgs/by-name/gf/gfp-val3dity/package.nix b/pkgs/by-name/gf/gfp-val3dity/package.nix
@@ -0,0 +1,48 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ cgal,
+ geoflow,
+ geos,
+ nlohmann_json,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "gfp-val3dity";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "geoflow3d";
+ repo = "gfp-val3dity";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-LUldG3xslYb7fF1NlNG+oYzPZS9ttpgjxPAMsj46Tpk=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [
+ cgal
+ geoflow
+ geos
+ nlohmann_json
+ ];
+
+ cmakeFlags = [
+ (lib.cmakeFeature "CMAKE_POLICY_VERSION_MINIMUM" "3.10")
+ ];
+
+ installPhase = ''
+ install -Dm644 gfp_val3dity.so -t $out/lib/geoflow-plugins
+ '';
+
+ meta = {
+ description = "3D geometry validation for geoflow based on val3dity";
+ homepage = "https://github.com/geoflow3d/gfp-val3dity";
+ license = lib.licenses.gpl3Plus;
+ maintainers = [ lib.maintainers.sikmir ];
+ broken = true;
+ };
+})