From 04ae6a50ed4b13cbc23e76195d928ac1dc1981e9 Mon Sep 17 00:00:00 2001 From: Alex James Date: Tue, 13 May 2025 21:01:49 -0500 Subject: [PATCH 1/3] pcl: fix CUDA support The documentation [1] and upstream CI [2] define additional flags to enable CUDA support. [1]: https://pointclouds.org/documentation/tutorials/gpu_install.html [2]: https://github.com/PointCloudLibrary/pcl/blob/d3769b16170f73df40fc23bb7473b5f2fdcfac06/.ci/azure-pipelines/build/ubuntu.yaml --- pkgs/by-name/pc/pcl/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pc/pcl/package.nix b/pkgs/by-name/pc/pcl/package.nix index 7d5caeeecf818..6a0e24a4a6f4a 100644 --- a/pkgs/by-name/pc/pcl/package.nix +++ b/pkgs/by-name/pc/pcl/package.nix @@ -71,8 +71,10 @@ stdenv.mkDerivation (finalAttrs: { vtk ]; - cmakeFlags = lib.optionals cudaSupport [ - (lib.cmakeBool "WITH_CUDA" true) + cmakeFlags = [ + (lib.cmakeBool "BUILD_CUDA" cudaSupport) + (lib.cmakeBool "BUILD_GPU" cudaSupport) + (lib.cmakeBool "WITH_CUDA" cudaSupport) ]; passthru.updateScript = gitUpdater { From e9911feb1f46a8ff15f7e81e348bcceb05937331 Mon Sep 17 00:00:00 2001 From: Alex James Date: Tue, 13 May 2025 20:58:47 -0500 Subject: [PATCH 2/3] pcl: build with `PCL_ENABLE_MARCHNATIVE=false` This defaults to true, which causes the CC wrappers to issue warnings: warning: Skipping impure flag -march=native because NIX_ENFORCE_NO_NATIVE is set --- pkgs/by-name/pc/pcl/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/pc/pcl/package.nix b/pkgs/by-name/pc/pcl/package.nix index 6a0e24a4a6f4a..cd99ff04647cc 100644 --- a/pkgs/by-name/pc/pcl/package.nix +++ b/pkgs/by-name/pc/pcl/package.nix @@ -74,6 +74,7 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ (lib.cmakeBool "BUILD_CUDA" cudaSupport) (lib.cmakeBool "BUILD_GPU" cudaSupport) + (lib.cmakeBool "PCL_ENABLE_MARCHNATIVE" false) (lib.cmakeBool "WITH_CUDA" cudaSupport) ]; From 3c9253463973a5fdba463265dcfc9cc2c515b145 Mon Sep 17 00:00:00 2001 From: Alex James Date: Tue, 13 May 2025 20:54:36 -0500 Subject: [PATCH 3/3] pcl: limit libopenmp dependency to Clang --- pkgs/by-name/pc/pcl/package.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/pc/pcl/package.nix b/pkgs/by-name/pc/pcl/package.nix index cd99ff04647cc..f57975508c8e8 100644 --- a/pkgs/by-name/pc/pcl/package.nix +++ b/pkgs/by-name/pc/pcl/package.nix @@ -41,6 +41,8 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-UCuQMWGwe+YxeGj0Y6m5IT58NW2lAWN5RqyZnvyFSr4="; }; + strictDeps = true; + # remove attempt to prevent (x86/x87-specific) extended precision use # when SSE not detected postPatch = lib.optionalString (!stdenv.hostPlatform.isx86) '' @@ -59,8 +61,7 @@ stdenv.mkDerivation (finalAttrs: { libpcap libsForQt5.qtbase libusb1 - llvmPackages.openmp - ]; + ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ]; propagatedBuildInputs = [ boost