mirror of
https://github.com/mborgerding/kissfft.git
synced 2025-05-27 13:10:26 -04:00
Merge pull request #57 from basilgello/debian-fixes
Modernize upstream package after inclusion to Debian
This commit is contained in:
commit
d11f1a889c
@ -11,6 +11,13 @@ project(kissfft VERSION "${MAKEFILE_EXTRACTED_VERSION}")
|
||||
option(KISSFFT_SIMD "Build kissfft with SIMD" OFF)
|
||||
option(KISSFFT_FLOAT "Build kissfft with float type" ON)
|
||||
option(KISSFFT_OPENMP "Build kissfft with openmp" OFF)
|
||||
option(KISSFFT_TOOLS "Build kissfft tools" ON)
|
||||
option(KISSFFT_TEST "Build and enable kissfft tests" ON)
|
||||
option(KISSFFT_INSTALL "Enable kissfft install" ON)
|
||||
|
||||
if (KISSFFT_INSTALL)
|
||||
include(GNUInstallDirs)
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
|
||||
add_compile_options(-ffast-math -fomit-frame-pointer
|
||||
@ -33,7 +40,11 @@ if(NOT KISSFFT_FLOAT_TYPE IN_LIST KISSFFT_FLOAT_TYPE_VALID)
|
||||
endif()
|
||||
|
||||
add_library(kissfft
|
||||
kiss_fft.c)
|
||||
kiss_fft.c
|
||||
tools/kfc.c
|
||||
tools/kiss_fftnd.c
|
||||
tools/kiss_fftndr.c
|
||||
tools/kiss_fftr.c)
|
||||
|
||||
target_include_directories(kissfft PUBLIC
|
||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
|
||||
@ -93,25 +104,27 @@ function(add_kissfft_executable NAME)
|
||||
OUTPUT_NAME "${NAME}_${KISSFFT_DATATYPE}")
|
||||
endfunction()
|
||||
|
||||
option(KISSFFT_TOOLS "Build kissfft tools" ON)
|
||||
if(KISSFFT_TOOLS)
|
||||
add_subdirectory(tools)
|
||||
endif()
|
||||
|
||||
option(KISSFFT_TEST "Build and enable kissfft tests" ON)
|
||||
if(KISSFFT_TEST)
|
||||
enable_testing()
|
||||
add_subdirectory(test)
|
||||
endif()
|
||||
|
||||
option(KISSFFT_INSTALL "Enable kissfft install" ON)
|
||||
if (KISSFFT_INSTALL)
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS kissfft EXPORT kissfft
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(FILES "kiss_fft.h" "kissfft.hh" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
install(FILES kiss_fft.h
|
||||
kissfft.hh
|
||||
tools/kfc.h
|
||||
tools/kiss_fftnd.h
|
||||
tools/kiss_fftndr.h
|
||||
tools/kiss_fftr.h
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
|
||||
set(KISSFFT_INSTALL_CMAKE "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" CACHE FILEPATH "Install destination of kissfft cmake modules")
|
||||
mark_as_advanced(KISSFFT_INSTALL_CMAKE)
|
||||
|
@ -12,14 +12,14 @@ function(add_kissfft_test_executable NAME)
|
||||
add_kissfft_executable(${NAME} ${ARGN} $<TARGET_OBJECTS:kissfft_help_library>)
|
||||
target_include_directories(${NAME} PRIVATE ../tools)
|
||||
add_test(NAME ${NAME} COMMAND ${NAME})
|
||||
set_tests_properties(${NAME} PROPERTIES TIMEOUT 10)
|
||||
set_tests_properties(${NAME} PROPERTIES TIMEOUT 3600)
|
||||
endfunction()
|
||||
|
||||
set(KISSFFT_TEST_NUMFFTS 10000)
|
||||
|
||||
add_kissfft_test_executable(bm_kiss benchkiss.c)
|
||||
# add_test(NAME benchmar COMMAND ${NAME})
|
||||
# set_tests_properties(${NAME} PROPERTIES TIMEOUT 10)
|
||||
# set_tests_properties(${NAME} PROPERTIES TIMEOUT 3600)
|
||||
|
||||
include(FindPkgConfig)
|
||||
if(KISSFFT_FLOAT)
|
||||
@ -44,6 +44,6 @@ add_kissfft_test_executable(testcpp testcpp.cc)
|
||||
find_package(PythonInterp REQUIRED)
|
||||
add_test(NAME testkiss.py COMMAND "${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/testkiss.py")
|
||||
set_tests_properties(testkiss.py PROPERTIES
|
||||
TIMEOUT 20
|
||||
TIMEOUT 3600
|
||||
ENVIRONMENT "DATATYPE=${KISSFFT_DATATYPE}"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
@ -1,17 +1,33 @@
|
||||
add_kissfft_executable(fastconvr kiss_fastfir.c kiss_fftr.c)
|
||||
add_kissfft_executable(fastconvr kiss_fastfir.c)
|
||||
target_compile_definitions(fastconvr PRIVATE REAL_FASTFIR FAST_FILT_UTIL)
|
||||
|
||||
add_kissfft_executable(fastconv kiss_fastfir.c)
|
||||
target_compile_definitions(fastconv PRIVATE FAST_FILT_UTIL)
|
||||
|
||||
add_kissfft_executable(fft fftutil.c kiss_fftnd.c kiss_fftr.c kiss_fftndr.c)
|
||||
add_kissfft_executable(fft fftutil.c)
|
||||
|
||||
|
||||
if (KISSFFT_INSTALL)
|
||||
install(TARGETS fastconv fastconvr fft
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
endif()
|
||||
|
||||
# psdpng does not build with "simd" datatype
|
||||
if(NOT KISSFFT_DATATYPE MATCHES "simd")
|
||||
include(FindPkgConfig)
|
||||
pkg_check_modules(libpng REQUIRED IMPORTED_TARGET libpng)
|
||||
add_kissfft_executable(psdpng psdpng.c kiss_fftr.c)
|
||||
add_kissfft_executable(psdpng psdpng.c)
|
||||
target_link_libraries(psdpng PRIVATE PkgConfig::libpng)
|
||||
if (KISSFFT_INSTALL)
|
||||
install(TARGETS psdpng
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#FIXME: dumphdr.c is not available
|
||||
|
@ -40,12 +40,12 @@ call kfc_cleanup.
|
||||
*/
|
||||
|
||||
/*forward complex FFT */
|
||||
void kfc_fft(int nfft, const kiss_fft_cpx * fin,kiss_fft_cpx * fout);
|
||||
void KISS_FFT_API kfc_fft(int nfft, const kiss_fft_cpx * fin,kiss_fft_cpx * fout);
|
||||
/*reverse complex FFT */
|
||||
void kfc_ifft(int nfft, const kiss_fft_cpx * fin,kiss_fft_cpx * fout);
|
||||
void KISS_FFT_API kfc_ifft(int nfft, const kiss_fft_cpx * fin,kiss_fft_cpx * fout);
|
||||
|
||||
/*free all cached objects*/
|
||||
void kfc_cleanup(void);
|
||||
void KISS_FFT_API kfc_cleanup(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -17,8 +17,8 @@ extern "C" {
|
||||
|
||||
typedef struct kiss_fftnd_state * kiss_fftnd_cfg;
|
||||
|
||||
kiss_fftnd_cfg kiss_fftnd_alloc(const int *dims,int ndims,int inverse_fft,void*mem,size_t*lenmem);
|
||||
void kiss_fftnd(kiss_fftnd_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout);
|
||||
kiss_fftnd_cfg KISS_FFT_API kiss_fftnd_alloc(const int *dims,int ndims,int inverse_fft,void*mem,size_t*lenmem);
|
||||
void KISS_FFT_API kiss_fftnd(kiss_fftnd_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ extern "C" {
|
||||
typedef struct kiss_fftndr_state *kiss_fftndr_cfg;
|
||||
|
||||
|
||||
kiss_fftndr_cfg kiss_fftndr_alloc(const int *dims,int ndims,int inverse_fft,void*mem,size_t*lenmem);
|
||||
kiss_fftndr_cfg KISS_FFT_API kiss_fftndr_alloc(const int *dims,int ndims,int inverse_fft,void*mem,size_t*lenmem);
|
||||
/*
|
||||
dims[0] must be even
|
||||
|
||||
@ -28,7 +28,7 @@ kiss_fftndr_cfg kiss_fftndr_alloc(const int *dims,int ndims,int inverse_fft,voi
|
||||
*/
|
||||
|
||||
|
||||
void kiss_fftndr(
|
||||
void KISS_FFT_API kiss_fftndr(
|
||||
kiss_fftndr_cfg cfg,
|
||||
const kiss_fft_scalar *timedata,
|
||||
kiss_fft_cpx *freqdata);
|
||||
@ -37,7 +37,7 @@ void kiss_fftndr(
|
||||
output freqdata has dims[0] X dims[1] X ... X dims[ndims-1]/2+1 complex points
|
||||
*/
|
||||
|
||||
void kiss_fftndri(
|
||||
void KISS_FFT_API kiss_fftndri(
|
||||
kiss_fftndr_cfg cfg,
|
||||
const kiss_fft_cpx *freqdata,
|
||||
kiss_fft_scalar *timedata);
|
||||
|
@ -26,7 +26,7 @@ extern "C" {
|
||||
typedef struct kiss_fftr_state *kiss_fftr_cfg;
|
||||
|
||||
|
||||
kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem);
|
||||
kiss_fftr_cfg KISS_FFT_API kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem);
|
||||
/*
|
||||
nfft must be even
|
||||
|
||||
@ -34,13 +34,13 @@ kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenm
|
||||
*/
|
||||
|
||||
|
||||
void kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata);
|
||||
void KISS_FFT_API kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata);
|
||||
/*
|
||||
input timedata has nfft scalar points
|
||||
output freqdata has nfft/2+1 complex points
|
||||
*/
|
||||
|
||||
void kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata);
|
||||
void KISS_FFT_API kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata);
|
||||
/*
|
||||
input freqdata has nfft/2+1 complex points
|
||||
output timedata has nfft scalar points
|
||||
|
Loading…
Reference in New Issue
Block a user