Overhaul CMake makefiles

* Minimum CMake version lowered to 3.6 (tested on 3.6.1)
  * Refactored CMake configuration options

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
This commit is contained in:
Vasyl Gello
2021-01-27 12:42:34 +02:00
parent 2e2747c129
commit cccf41adf2
4 changed files with 369 additions and 113 deletions

View File

@ -1,23 +1,25 @@
add_library(kissfft_help_library OBJECT
pstats.c
../tools/kfc.c
../tools/kiss_fftnd.c
../tools/kiss_fftr.c
../tools/kiss_fftndr.c
)
target_link_libraries(kissfft_help_library PRIVATE kissfft::kissfft)
target_include_directories(kissfft_help_library PRIVATE ../tools)
function(add_kissfft_test_executable NAME)
add_kissfft_executable(${NAME} ${ARGN} $<TARGET_OBJECTS:kissfft_help_library>)
target_include_directories(${NAME} PRIVATE ../tools)
add_kissfft_executable(${NAME} ${ARGN})
target_include_directories(${NAME} PRIVATE ..)
add_test(NAME ${NAME} COMMAND ${NAME})
set_tests_properties(${NAME} PROPERTIES TIMEOUT 3600)
endfunction()
set(KISSFFT_TEST_NUMFFTS 10000)
add_kissfft_test_executable(bm_kiss benchkiss.c)
#
# Add tools-independent fastfilt_* (../tools/fft_*) executable without adding a test
#
add_kissfft_executable(fastfilt ../tools/fftutil.c)
target_include_directories(fastfilt PRIVATE ..)
#
# Add test executables and define tests
#
add_kissfft_test_executable(bm_kiss benchkiss.c pstats.c)
# add_test(NAME benchmar COMMAND ${NAME})
# set_tests_properties(${NAME} PROPERTIES TIMEOUT 3600)
@ -28,7 +30,7 @@ else()
set(fftw3_pkg fftw3)
endif()
pkg_check_modules(fftw3 REQUIRED IMPORTED_TARGET ${fftw3_pkg})
add_kissfft_test_executable(bm_fftw benchfftw.c)
add_kissfft_test_executable(bm_fftw benchfftw.c pstats.c)
target_link_libraries(bm_fftw PRIVATE PkgConfig::fftw3)
add_kissfft_test_executable(st twotonetest.c)
@ -41,9 +43,21 @@ add_kissfft_test_executable(tr test_real.c)
add_kissfft_test_executable(testcpp testcpp.cc)
if(KISSFFT_DATATYPE MATCHES "^simd$")
add_kissfft_test_executable(tsimd test_simd.c)
target_compile_definitions(tsimd PRIVATE USE_SIMD)
if (NOT MSVC)
target_compile_options(kissfft PRIVATE -msse)
else()
target_compile_options(kissfft PRIVATE "/arch:SSE")
endif()
endif()
find_package(PythonInterp REQUIRED)
add_test(NAME testkiss.py COMMAND "${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/testkiss.py")
list(APPEND TESTKISS_PY_ENV "KISSFFT_DATATYPE=${KISSFFT_DATATYPE}")
list(APPEND TESTKISS_PY_ENV "KISSFFT_OPENMP=${KISSFFT_OPENMP}")
set_tests_properties(testkiss.py PROPERTIES
TIMEOUT 3600
ENVIRONMENT "DATATYPE=${KISSFFT_DATATYPE}"
ENVIRONMENT "${TESTKISS_PY_ENV}"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")