Subject: [PATCH] Add fftw-cmake

From: Mehmet Tekman <[email-masked]>
Date: Mon, 27 Nov 2023 23:59:53 +0100

After talking with <futurile> via irc[0], it was explained to me that I can
inherit an existing package decleration instead of cloning it.

0: https://logs.guix.gnu.org/guix/2023-11-27.log#151712

This is an update of the previous patch. Please use this patch instead
and ignore the previous one.

>From b4a6539391ae1a5e241d6398f8f33a5e63e890e1 Mon Sep 17 00:00:00 2001
From: Mehmet Tekman <[email-masked]>
Date: Mon, 27 Nov 2023 23:38:32 +0100
Subject: [PATCH] * gnu/packages/algebra.scm (fftw-cmake): New variable

  This is a clone of the fftw function, but uses cmake to build in order for
  the FFTW3LibraryDepends.cmake file to be built, neccesary for packages with
  cmake builds that depend on fftw3.

  See: https://bugzilla.redhat.com/show_bug.cgi?id=1729652#c5

  This variable is cloned from the existing fftw3 in order to not break any
  downstream packages that make use of the target optimizations given by the
  gnu build.

Change-Id: I620d00d980421bc063c325718e0cafc4ae23e57e
---
 gnu/packages/algebra.scm | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index c0fe75ddfd..ecad6b2b21 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2020, 2021, 2023 Vinicius Monego <[email-masked]>
 ;;; Copyright © 2021 Lars-Dominik Braun <[email-masked]>
 ;;; Copyright © 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2023 Mehmet Tekman <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -733,6 +734,20 @@ (define-public kiss-fft-for-extempore
 a C program.")
     (license license:bsd-3)))
 
+(define-public fftw-cmake
+  (package/inherit fftw
+    ;; Cmake compiling is experimental since 2017, and it is not clear if this
+    ;; build has the same target-specific optimizations as the fftw gnu build.
+    ;; See: https://fftw.org/release-notes.html
+    (name "fftw-cmake")
+    (build-system cmake-build-system)
+    (arguments (default-keyword-arguments '()
+                                          '()))
+    (description (string-append (package-description fftw)
+                  "  This CMake build offers the file
+FFTW3LibraryDepends.cmake required by some dependent packages, absent in the
+gnu build version."))))
+
 (define-public fftw
   (package
     (name "fftw")
-- 
2.41.0