Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ports/fftw3/CONTROL
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Source: fftw3
Version: 3.3.8-4
Version: 3.3.8-6
Description: FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST).

Feature: openmp
Expand Down
11 changes: 0 additions & 11 deletions ports/fftw3/fix-dynamic.patch

This file was deleted.

62 changes: 29 additions & 33 deletions ports/fftw3/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,30 +1,18 @@
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fftw-3.3.8)

vcpkg_check_linkage(ONLY_STATIC_LIBRARY)

# This can be removed in the next source code update
if(EXISTS "${SOURCE_PATH}/CMakeLists.txt")
file(READ "${SOURCE_PATH}/CMakeLists.txt" _contents)
if("${_contents}" MATCHES "-D_OPENMP -DLIBFFTWF33_EXPORTS /openmp /bigobj")
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src)
endif()
endif()

vcpkg_download_distfile(ARCHIVE
URLS "http://www.fftw.org/fftw-3.3.8.tar.gz"
FILENAME "fftw-3.3.8.tar.gz"
SHA512 ab918b742a7c7dcb56390a0a0014f517a6dff9a2e4b4591060deeb2c652bf3c6868aa74559a422a276b853289b4b701bdcbd3d4d8c08943acf29167a7be81a38
)

vcpkg_extract_source_archive(${ARCHIVE})

vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
PATCHES
${CMAKE_CURRENT_LIST_DIR}/omp_test.patch
${CMAKE_CURRENT_LIST_DIR}/patch_targets.patch
${CMAKE_CURRENT_LIST_DIR}/fftw3_arch_fix.patch
omp_test.patch
patch_targets.patch
fftw3_arch_fix.patch
)

if ("openmp" IN_LIST FEATURES)
Expand Down Expand Up @@ -70,15 +58,21 @@ else()
set(HAVE_THREADS OFF)
endif()

foreach(PRECISION ENABLE_DEFAULT_PRECISION ENABLE_FLOAT ENABLE_LONG_DOUBLE)
if(${PRECISION} MATCHES "ENABLE_LONG_DOUBLE")
set(ENABLE_FLOAT_CMAKE fftw3f)
set(ENABLE_LONG_DOUBLE_CMAKE fftw3l)
set(ENABLE_DEFAULT_PRECISION_CMAKE fftw3)

foreach(PRECISION ENABLE_FLOAT ENABLE_LONG_DOUBLE ENABLE_DEFAULT_PRECISION)
if(PRECISION STREQUAL "ENABLE_LONG_DOUBLE")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-D${PRECISION}=ON
-DENABLE_OPENMP=${ENABLE_OPENMP}
-DENABLE_THREADS=${HAVE_THREADS}
-DWITH_COMBINED_THREADS=${HAVE_THREADS}
-DBUILD_TESTS=OFF
)
else()
vcpkg_configure_cmake(
Expand All @@ -93,27 +87,29 @@ foreach(PRECISION ENABLE_DEFAULT_PRECISION ENABLE_FLOAT ENABLE_LONG_DOUBLE)
-DHAVE_AVX2=${HAVE_AVX2}
-DHAVE_FMA=${HAVE_FMA}
-DENABLE_THREADS=${HAVE_THREADS}
-DWITH_COMBINED_THREADS=${HAVE_THREADS}
-DBUILD_TESTS=OFF
)
endif()

vcpkg_install_cmake()
vcpkg_copy_pdbs()

file(COPY ${SOURCE_PATH}/api/fftw3.h DESTINATION ${CURRENT_PACKAGES_DIR}/include)
vcpkg_copy_pdbs()

vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake)
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake TARGET_PATH share/${${PRECISION}_CMAKE})
endforeach()

if (VCPKG_CRT_LINKAGE STREQUAL dynamic)
vcpkg_apply_patches(
SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include
PATCHES
${CMAKE_CURRENT_LIST_DIR}/fix-dynamic.patch)
endif()
file(READ ${SOURCE_PATH}/api/fftw3.h _contents)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
string(REPLACE "defined(FFTW_DLL)" "0" _contents "${_contents}")
else()
string(REPLACE "defined(FFTW_DLL)" "1" _contents "${_contents}")
endif()
file(WRITE ${SOURCE_PATH}/include/fftw3.h "${_contents}")

# Cleanup
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
endforeach()
# Cleanup
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)

# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/fftw3)
Expand Down