aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/kissfft
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/kissfft
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/kissfft')
-rw-r--r--vcpkg/ports/kissfft/fix-install-dirs.patch15
-rw-r--r--vcpkg/ports/kissfft/fix-linkage.patch13
-rw-r--r--vcpkg/ports/kissfft/portfile.cmake90
-rw-r--r--vcpkg/ports/kissfft/usage11
-rw-r--r--vcpkg/ports/kissfft/vcpkg.json30
5 files changed, 159 insertions, 0 deletions
diff --git a/vcpkg/ports/kissfft/fix-install-dirs.patch b/vcpkg/ports/kissfft/fix-install-dirs.patch
new file mode 100644
index 0000000..f9c1bfd
--- /dev/null
+++ b/vcpkg/ports/kissfft/fix-install-dirs.patch
@@ -0,0 +1,15 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0213798..c4d7d3e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -105,9 +105,7 @@ endif()
+ # Add GNUInstallDirs for GNU infrastructure before target)include_directories
+ #
+
+-if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$" AND NOT CMAKE_CROSSCOMPILING)
+- include(GNUInstallDirs)
+-endif()
++include(GNUInstallDirs)
+
+ #
+ # Declare PKGINCLUDEDIR for kissfft include path
diff --git a/vcpkg/ports/kissfft/fix-linkage.patch b/vcpkg/ports/kissfft/fix-linkage.patch
new file mode 100644
index 0000000..9e91f5f
--- /dev/null
+++ b/vcpkg/ports/kissfft/fix-linkage.patch
@@ -0,0 +1,13 @@
+diff --git a/kissfft-config.cmake.in b/kissfft-config.cmake.in
+index cd7139a..c387fe6 100644
+--- a/kissfft-config.cmake.in
++++ b/kissfft-config.cmake.in
+@@ -28,7 +28,7 @@ cmake_minimum_required(VERSION 3.3)
+
+ # Set include glob of config files using SHARED/static component, BUILD_SHARED_LIBS by default
+ set(_kissfft_shared_detected OFF)
+-set(_kissfft_shared ${BUILD_SHARED_LIBS})
++set(_kissfft_shared @BUILD_SHARED_LIBS@)
+ if("SHARED" IN_LIST kissfft_FIND_COMPONENTS)
+ set(_kissfft_shared_detected ON)
+ set(_kissfft_shared ON)
diff --git a/vcpkg/ports/kissfft/portfile.cmake b/vcpkg/ports/kissfft/portfile.cmake
new file mode 100644
index 0000000..9372b9e
--- /dev/null
+++ b/vcpkg/ports/kissfft/portfile.cmake
@@ -0,0 +1,90 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mborgerding/kissfft
+ REF "${VERSION}"
+ SHA512 bd715868ce0e93a291a0592fb1f8b960e832fc64efe863755e52b67d5addff9bcb444a1bf2570d1914c52b41dad1023d0d86400f5ea30c9fb84cd6b4f7210708
+ HEAD_REF master
+ PATCHES
+ fix-install-dirs.patch
+ fix-linkage.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KISSFFT_STATIC)
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ openmp KISSFFT_OPENMP
+ tools KISSFFT_TOOLS
+)
+
+if("tools" IN_LIST FEATURES)
+ vcpkg_find_acquire_program(PKGCONFIG)
+endif()
+
+set(datatypes float double int16_t int32_t)
+
+foreach(datatype IN LISTS datatypes)
+ vcpkg_cmake_configure(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DKISSFFT_DATATYPE=${datatype}
+ -DKISSFFT_PKGCONFIG=ON
+ -DKISSFFT_TEST=OFF
+ -DKISSFFT_STATIC=${KISSFFT_STATIC}
+ ${FEATURE_OPTIONS}
+ LOGFILE_BASE "config-${TARGET_TRIPLET}-${datatype}"
+ )
+
+ vcpkg_cmake_build(
+ LOGFILE_BASE "install-${TARGET_TRIPLET}-${datatype}"
+ TARGET install
+ )
+
+ vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/kissfft")
+
+ vcpkg_copy_pdbs()
+endforeach()
+
+vcpkg_fixup_pkgconfig()
+
+if("tools" IN_LIST FEATURES)
+ set(tool_names)
+
+ foreach(datatype IN LISTS datatypes)
+ if("openmp" IN_LIST FEATURES)
+ list(APPEND tool_names
+ "fastconv-${datatype}-openmp"
+ "fastconvr-${datatype}-openmp"
+ "fft-${datatype}-openmp"
+ "psdpng-${datatype}-openmp"
+ )
+ else()
+ list(APPEND tool_names
+ "fastconv-${datatype}"
+ "fastconvr-${datatype}"
+ "fft-${datatype}"
+ "psdpng-${datatype}"
+ )
+ endif()
+ endforeach()
+
+ vcpkg_copy_tools(
+ TOOL_NAMES ${tool_names}
+ AUTO_CLEAN
+ )
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ vcpkg_replace_string(
+ "${CURRENT_PACKAGES_DIR}/include/kissfft/kiss_fft.h"
+ "#ifdef KISS_FFT_SHARED"
+ "#if 1 //#ifdef KISS_FFT_SHARED"
+ )
+endif()
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/kissfft")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
diff --git a/vcpkg/ports/kissfft/usage b/vcpkg/ports/kissfft/usage
new file mode 100644
index 0000000..d803db8
--- /dev/null
+++ b/vcpkg/ports/kissfft/usage
@@ -0,0 +1,11 @@
+kissfft provides CMake targets:
+
+ # Using distinct targets
+ find_package(kissfft CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE kissfft::kissfft-float)
+ # Alternative targets: kissfft::kissfft-double, kissfft::int16_t, kissfft::int32_t
+
+ # Using a distinct package component
+ find_package(kissfft CONFIG REQUIRED COMPONENTS float)
+ target_link_libraries(main PRIVATE kissfft::kissfft)
+ # Alternative components: double, int16_t, int32_t
diff --git a/vcpkg/ports/kissfft/vcpkg.json b/vcpkg/ports/kissfft/vcpkg.json
new file mode 100644
index 0000000..932d5e9
--- /dev/null
+++ b/vcpkg/ports/kissfft/vcpkg.json
@@ -0,0 +1,30 @@
+{
+ "name": "kissfft",
+ "version": "131.1.0",
+ "description": "A Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid",
+ "homepage": "https://github.com/mborgerding/kissfft",
+ "license": "BSD-3-Clause",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "openmp": {
+ "description": "Build kissfft with OpenMP support",
+ "supports": "!windows"
+ },
+ "tools": {
+ "description": "Build kissfft tools",
+ "supports": "linux | osx",
+ "dependencies": [
+ "libpng"
+ ]
+ }
+ }
+}