aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormyd7349 <myd7349@gmail.com>2020-05-13 07:21:22 +0800
committerGitHub <noreply@github.com>2020-05-12 16:21:22 -0700
commit663a898bca05426b13274b699256577aa6d9a0e7 (patch)
tree66dda27b87c11d49e9a9afb00e17008120d4fe78
parentba7450abdd7c6ccc29d8c4c7a56bbea62747beb9 (diff)
downloadvcpkg-663a898bca05426b13274b699256577aa6d9a0e7.tar.gz
vcpkg-663a898bca05426b13274b699256577aa6d9a0e7.zip
[kissfft] Add new port (#9237)
* [kissfft] Add new port * [kissfft] Update * [kissfft] Update to 2020-03-20
-rw-r--r--ports/kissfft/CMakeLists.txt65
-rw-r--r--ports/kissfft/CONTROL4
-rw-r--r--ports/kissfft/exports.def6
-rw-r--r--ports/kissfft/portfile.cmake30
4 files changed, 105 insertions, 0 deletions
diff --git a/ports/kissfft/CMakeLists.txt b/ports/kissfft/CMakeLists.txt
new file mode 100644
index 000000000..8d522ecb9
--- /dev/null
+++ b/ports/kissfft/CMakeLists.txt
@@ -0,0 +1,65 @@
+cmake_minimum_required(VERSION 3.14)
+
+project(kissfft LANGUAGES C)
+
+include(GNUInstallDirs)
+
+option(KF_USE_SIMD "Use SIMD" OFF)
+option(KF_INSTALL_HEADERS "Install header files" ON)
+
+if (KF_USE_SIMD)
+ set(KF_SCALAR_TYPE "__m128" CACHE STRING "Definition of kiss_fft_scalar")
+else ()
+ set(KF_SCALAR_TYPE "float" CACHE STRING "Definition of kiss_fft_scalar")
+endif ()
+
+# TODO: FIXED_POINT
+# TODO: -msse
+
+set(kissfft_sources kiss_fft.c)
+
+if (WIN32 AND BUILD_SHARED_LIBS)
+ list(APPEND kissfft_sources exports.def)
+endif ()
+
+add_library(kissfft ${kissfft_sources})
+
+if (BUILD_SHARED_LIBS)
+ set_property(
+ TARGET kissfft
+ PROPERTY POSITION_INDEPENDENT_CODE ON
+ )
+endif ()
+
+target_include_directories(
+ kissfft
+ PUBLIC
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+)
+
+target_compile_definitions(
+ kissfft
+ PUBLIC
+ $<$<BOOL:${KF_USE_SIMD}>:USE_SIMD>
+ kiss_fft_scalar=${KF_SCALAR_TYPE}
+)
+
+if (KF_INSTALL_HEADERS)
+ install(
+ FILES
+ _kiss_fft_guts.h
+ kiss_fft.h
+ kissfft.hh
+ kissfft_i32.hh
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ )
+endif ()
+
+install(TARGETS kissfft EXPORT unofficial-kissfft-config)
+
+install(
+ EXPORT unofficial-kissfft-config
+ NAMESPACE unofficial::kissfft::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-kissfft
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+)
diff --git a/ports/kissfft/CONTROL b/ports/kissfft/CONTROL
new file mode 100644
index 000000000..0c4f0f6a8
--- /dev/null
+++ b/ports/kissfft/CONTROL
@@ -0,0 +1,4 @@
+Source: kissfft
+Version: 2020-03-30
+Homepage: https://github.com/mborgerding/kissfft
+Description: A Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid
diff --git a/ports/kissfft/exports.def b/ports/kissfft/exports.def
new file mode 100644
index 000000000..09897b9da
--- /dev/null
+++ b/ports/kissfft/exports.def
@@ -0,0 +1,6 @@
+EXPORTS
+ kiss_fft_alloc
+ kiss_fft
+ kiss_fft_stride
+ kiss_fft_cleanup
+ kiss_fft_next_fast_size
diff --git a/ports/kissfft/portfile.cmake b/ports/kissfft/portfile.cmake
new file mode 100644
index 000000000..d5eea7889
--- /dev/null
+++ b/ports/kissfft/portfile.cmake
@@ -0,0 +1,30 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mborgerding/kissfft
+ REF 3f3fc6ab55da8610aba7fe89dcda09cf3a31f4e6
+ SHA512 5d3781a82d067cebd0a20c6b35a2d806598ba66f3bbf282c49a2ac9a6d09e1307dca1f8bc5fcc4c5955dc2f66aa94ca4dcfe00e6b31ea4694aa9d507f194554e
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/exports.def DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DKF_INSTALL_HEADERS=OFF
+ OPTIONS_RELEASE
+ -DKF_INSTALL_HEADERS=ON
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(
+ CONFIG_PATH lib/cmake/unofficial-${PORT}
+ TARGET_PATH share/unofficial-${PORT}
+)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)