aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/kissfft/portfile.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/kissfft/portfile.cmake')
-rw-r--r--vcpkg/ports/kissfft/portfile.cmake90
1 files changed, 90 insertions, 0 deletions
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")