From 677eae74c020ff36842ce2fa1a8e50387a359038 Mon Sep 17 00:00:00 2001 From: chausner <15180557+chausner@users.noreply.github.com> Date: Tue, 12 Oct 2021 20:27:30 +0200 Subject: [pffft] new port (#20624) * Add new port pffft * Add pffft to baseline Co-authored-by: chausner --- ports/pffft/CMakeLists.txt | 25 ++++++++++++++++++++++ ports/pffft/copyright | 52 ++++++++++++++++++++++++++++++++++++++++++++++ ports/pffft/portfile.cmake | 22 ++++++++++++++++++++ ports/pffft/vcpkg.json | 17 +++++++++++++++ versions/baseline.json | 4 ++++ versions/p-/pffft.json | 9 ++++++++ 6 files changed, 129 insertions(+) create mode 100644 ports/pffft/CMakeLists.txt create mode 100644 ports/pffft/copyright create mode 100644 ports/pffft/portfile.cmake create mode 100644 ports/pffft/vcpkg.json create mode 100644 versions/p-/pffft.json diff --git a/ports/pffft/CMakeLists.txt b/ports/pffft/CMakeLists.txt new file mode 100644 index 000000000..40f447ae5 --- /dev/null +++ b/ports/pffft/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.12.4) +project(pffft C) + +add_library(pffft pffft.c) + +if(MSVC) + target_compile_definitions(pffft PRIVATE _USE_MATH_DEFINES) +endif() + +target_include_directories(pffft PUBLIC $ $) + +install( + TARGETS pffft + EXPORT pffft-config +) + +install( + EXPORT pffft-config + NAMESPACE pffft:: + DESTINATION share/pffft +) + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES pffft.h DESTINATION include/pffft) +endif() \ No newline at end of file diff --git a/ports/pffft/copyright b/ports/pffft/copyright new file mode 100644 index 000000000..871b42e83 --- /dev/null +++ b/ports/pffft/copyright @@ -0,0 +1,52 @@ +Copyright (c) 2013 Julien Pommier ( pommier@modartt.com ) + +Based on original fortran 77 code from FFTPACKv4 from NETLIB +(http://www.netlib.org/fftpack), authored by Dr Paul Swarztrauber +of NCAR, in 1985. + +As confirmed by the NCAR fftpack software curators, the following +FFTPACKv5 license applies to FFTPACKv4 sources. My changes are +released under the same terms. + +FFTPACK license: + +http://www.cisl.ucar.edu/css/software/fftpack5/ftpk.html + +Copyright (c) 2004 the University Corporation for Atmospheric +Research ("UCAR"). All rights reserved. Developed by NCAR's +Computational and Information Systems Laboratory, UCAR, +www.cisl.ucar.edu. + +Redistribution and use of the Software in source and binary forms, +with or without modification, is permitted provided that the +following conditions are met: + +- Neither the names of NCAR's Computational and Information Systems +Laboratory, the University Corporation for Atmospheric Research, +nor the names of its sponsors or contributors may be used to +endorse or promote products derived from this Software without +specific prior written permission. + +- Redistributions of source code must retain the above copyright +notices, this list of conditions, and the disclaimer below. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions, and the disclaimer below in the +documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + + +PFFFT : a Pretty Fast FFT. + +This file is largerly based on the original FFTPACK implementation, modified in +order to take advantage of SIMD instructions of modern CPUs. diff --git a/ports/pffft/portfile.cmake b/ports/pffft/portfile.cmake new file mode 100644 index 000000000..32d4f833f --- /dev/null +++ b/ports/pffft/portfile.cmake @@ -0,0 +1,22 @@ +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_bitbucket( + OUT_SOURCE_PATH SOURCE_PATH + REPO jpommier/pffft + REF ed78751d751e51bbd94c41d24f748b400f272d69 + SHA512 44f65c7f7e5b71f549dca2e03d58b1fd64e698858f79e4c2833a9ae3dff8a835cf9d5e14be2341c6370f800012cb69b05b9226d6918b12e67f7f7e81ed8e9ad4 + HEAD_REF master +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup() + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/copyright" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") \ No newline at end of file diff --git a/ports/pffft/vcpkg.json b/ports/pffft/vcpkg.json new file mode 100644 index 000000000..5ea7a3bd2 --- /dev/null +++ b/ports/pffft/vcpkg.json @@ -0,0 +1,17 @@ +{ + "name": "pffft", + "version-date": "2021-10-09", + "description": "PFFFT, a pretty fast Fourier Transform.", + "homepage": "https://bitbucket.org/jpommier/pffft/", + "supports": "static", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/versions/baseline.json b/versions/baseline.json index 1aaaea54a..25a33f202 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5096,6 +5096,10 @@ "baseline": "2.8.3", "port-version": 1 }, + "pffft": { + "baseline": "2021-10-09", + "port-version": 0 + }, "pfring": { "baseline": "2019-10-17", "port-version": 3 diff --git a/versions/p-/pffft.json b/versions/p-/pffft.json new file mode 100644 index 000000000..9defc0134 --- /dev/null +++ b/versions/p-/pffft.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "c425b1091069b34450a9b7e524f1cad202e4e709", + "version-date": "2021-10-09", + "port-version": 0 + } + ] +} -- cgit v1.2.3