Index | Thread | Search

From:
Rafael Sadowski <rafael@sizeofvoid.org>
Subject:
Fix cmake in math/fftw3
To:
ports <ports@openbsd.org>
Date:
Mon, 8 Jan 2024 17:53:02 +0100

Download raw body.

Thread
Please find a diff to fix the missing FFTW3LibraryDepends.cmake in
fftw3. This file would normally be generated by cmake, but we are using
the more feature-complete and stable autotools configure.

https://github.com/FFTW/fftw3/issues/130

While I'm here, I think the cmake files should be moved from -double,
-float to -common?

Rafael

Index: Makefile
===================================================================
RCS file: /cvs/ports/math/fftw3/Makefile,v
diff -u -p -u -p -r1.41 Makefile
--- Makefile	27 Sep 2023 09:27:54 -0000	1.41
+++ Makefile	8 Jan 2024 16:47:57 -0000
@@ -14,6 +14,9 @@ SHARED_LIBS=	fftw3	7.1 \
 		fftw3f_threads	1.2
 CATEGORIES=	math
 
+REVISION-main=		0
+REVISION-common=	0
+
 HOMEPAGE=	https://www.fftw.org/
 
 # GPL
@@ -47,5 +50,8 @@ PKG_ARCH-common=	*
 post-install:
 	${INSTALL_DATA_DIR} ${PREFIX}/share/doc/fftw3
 	${INSTALL_DATA} ${WRKSRC}/doc/fftw3.pdf ${PREFIX}/share/doc/fftw3
+	# https://github.com/FFTW/fftw3/issues/130
+	${INSTALL_DATA} ${FILESDIR}/FFTW3LibraryDepends.cmake.in \
+		${PREFIX}/lib/cmake/fftw3/FFTW3LibraryDepends.cmake.in
 
 .include <bsd.port.mk>
Index: files/FFTW3LibraryDepends.cmake.in
===================================================================
RCS file: files/FFTW3LibraryDepends.cmake.in
diff -N files/FFTW3LibraryDepends.cmake.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/FFTW3LibraryDepends.cmake.in	8 Jan 2024 16:47:57 -0000
@@ -0,0 +1,68 @@
+# Generated by CMake
+
+if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
+   message(FATAL_ERROR "CMake >= 2.8.0 required")
+endif()
+if(CMAKE_VERSION VERSION_LESS "2.8.3")
+   message(FATAL_ERROR "CMake >= 2.8.3 required")
+endif()
+cmake_policy(PUSH)
+cmake_policy(VERSION 2.8.3...3.25)
+#----------------------------------------------------------------
+# Generated CMake target import file.
+#----------------------------------------------------------------
+
+# Commands may need to know the format version.
+set(CMAKE_IMPORT_FILE_VERSION 1)
+
+# Protect against multiple inclusion, which would fail when already imported targets are added once more.
+set(_cmake_targets_defined "")
+set(_cmake_targets_not_defined "")
+set(_cmake_expected_targets "")
+foreach(_cmake_expected_target IN ITEMS FFTW3::fftw3%%FFTW3_SUFX%%)
+  list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
+  if(TARGET "${_cmake_expected_target}")
+    list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
+  else()
+    list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
+  endif()
+endforeach()
+unset(_cmake_expected_target)
+if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
+  unset(_cmake_targets_defined)
+  unset(_cmake_targets_not_defined)
+  unset(_cmake_expected_targets)
+  unset(CMAKE_IMPORT_FILE_VERSION)
+  cmake_policy(POP)
+  return()
+endif()
+if(NOT _cmake_targets_defined STREQUAL "")
+  string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
+  string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
+  message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
+endif()
+unset(_cmake_targets_defined)
+unset(_cmake_targets_not_defined)
+unset(_cmake_expected_targets)
+
+
+# Create imported target FFTW3::fftw3%%FFTW3_SUFX%%
+add_library(FFTW3::fftw3%%FFTW3_SUFX%% SHARED IMPORTED)
+
+set_target_properties(FFTW3::fftw3%%FFTW3_SUFX%% PROPERTIES
+  INTERFACE_LINK_LIBRARIES "m"
+)
+
+# Import target "FFTW3::fftw3%%FFTW3_SUFX%%" for configuration "Release"
+set_property(TARGET FFTW3::fftw3%%FFTW3_SUFX%% APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+set_target_properties(FFTW3::fftw3%%FFTW3_SUFX%% PROPERTIES
+  IMPORTED_LOCATION_RELEASE "%%LOCALBASE%%/lib/libfftw3%%FFTW3_SUFX%%.so.%%SHLIB_VER_MAJ%%"
+  IMPORTED_SONAME_RELEASE "libfftw3%%FFTW3_SUFX%%.so.%%SHLIB_VER%%"
+  )
+
+# This file does not depend on other imported targets which have
+# been exported from the same project but in a separate export set.
+
+# Commands beyond this point should not need to know the version.
+set(CMAKE_IMPORT_FILE_VERSION)
+cmake_policy(POP)
Index: pkg/PFRAG.double-main
===================================================================
RCS file: /cvs/ports/math/fftw3/pkg/PFRAG.double-main,v
diff -u -p -u -p -r1.7 PFRAG.double-main
--- pkg/PFRAG.double-main	21 Nov 2022 23:01:17 -0000	1.7
+++ pkg/PFRAG.double-main	8 Jan 2024 16:47:57 -0000
@@ -1,8 +1,6 @@
 @pkgpath math/fftw3
 @pkgpath math/fftw3,double
 @bin bin/fftw-wisdom
-lib/cmake/fftw3/FFTW3Config.cmake
-lib/cmake/fftw3/FFTW3ConfigVersion.cmake
 @static-lib lib/libfftw3.a
 lib/libfftw3.la
 @lib lib/libfftw3.so.${LIBfftw3_VERSION}
Index: pkg/PFRAG.float-main
===================================================================
RCS file: /cvs/ports/math/fftw3/pkg/PFRAG.float-main,v
diff -u -p -u -p -r1.7 PFRAG.float-main
--- pkg/PFRAG.float-main	21 Nov 2022 23:01:17 -0000	1.7
+++ pkg/PFRAG.float-main	8 Jan 2024 16:47:57 -0000
@@ -1,7 +1,5 @@
 @pkgpath math/fftw3,float
 @bin bin/fftwf-wisdom
-lib/cmake/fftw3/FFTW3fConfig.cmake
-lib/cmake/fftw3/FFTW3fConfigVersion.cmake
 @static-lib lib/libfftw3f.a
 lib/libfftw3f.la
 @lib lib/libfftw3f.so.${LIBfftw3f_VERSION}
Index: pkg/PLIST-common
===================================================================
RCS file: /cvs/ports/math/fftw3/pkg/PLIST-common,v
diff -u -p -u -p -r1.6 PLIST-common
--- pkg/PLIST-common	11 Mar 2022 19:36:14 -0000	1.6
+++ pkg/PLIST-common	8 Jan 2024 16:47:57 -0000
@@ -9,6 +9,9 @@ include/fftw3q.f03
 @info info/fftw3.info
 lib/cmake/
 lib/cmake/fftw3/
+lib/cmake/fftw3/FFTW3Config.cmake
+lib/cmake/fftw3/FFTW3ConfigVersion.cmake
+lib/cmake/fftw3/FFTW3LibraryDepends.cmake.in
 @man man/man1/fftw-wisdom-to-conf.1
 share/doc/fftw3/
 share/doc/fftw3/fftw3.pdf