# Compiler properties set(CMAKE_C_FLAGS "${ORG_CMAKE_C_FLAGS} ${DFT_C_FLAGS}") set(COMMON_TARGET_PROPERTIES C_STANDARD 99 # -std=gnu99 ) # function(add_test_dft TESTNAME) if (ARMIE_COMMAND) add_test(NAME ${TESTNAME} COMMAND ${ARMIE_COMMAND} -msve-vector-bits=${SVE_VECTOR_BITS} ${ARGN}) elseif (NOT EMULATOR AND NOT SDE_COMMAND) add_test(NAME ${TESTNAME} COMMAND ${ARGN}) elseif(NOT EMULATOR) add_test(NAME ${TESTNAME} COMMAND ${SDE_COMMAND} "--" ${ARGN}) else() add_test(NAME ${TESTNAME} COMMAND ${EMULATOR} ${ARGN}) endif() set_tests_properties(${TESTNAME} PROPERTIES COST 0.1) endfunction() # Include directories include_directories(${PROJECT_SOURCE_DIR}/include) # sleefdft.h include_directories(${sleef_BINARY_DIR}/include) # sleef.h if (FFTW3_INCLUDE_DIR) include_directories(${FFTW3_INCLUDE_DIR}) # fftw3.h endif() # Link directories link_directories(${sleef_BINARY_DIR}/lib) # libsleef, libsleefdft # Link libraries set(COMMON_LINK_LIBRARIES ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) if (COMPILER_SUPPORTS_OPENMP) set(COMMON_LINK_LIBRARIES ${COMMON_LINK_LIBRARIES} ${OpenMP_C_FLAGS}) endif() if((NOT MSVC) AND NOT SLEEF_CLANG_ON_WINDOWS) # Target executable naivetestdp set(TARGET_NAIVETESTDP "naivetestdp") add_executable(${TARGET_NAIVETESTDP} naivetest.c ${PROJECT_SOURCE_DIR}/include/sleefdft.h) add_dependencies(${TARGET_NAIVETESTDP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) target_compile_definitions(${TARGET_NAIVETESTDP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=1) target_link_libraries(${TARGET_NAIVETESTDP} ${COMMON_LINK_LIBRARIES}) set_target_properties(${TARGET_NAIVETESTDP} PROPERTIES ${COMMON_TARGET_PROPERTIES}) # Target executable naivetestsp set(TARGET_NAIVETESTSP "naivetestsp") add_executable(${TARGET_NAIVETESTSP} naivetest.c ${PROJECT_SOURCE_DIR}/include/sleefdft.h) add_dependencies(${TARGET_NAIVETESTSP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) target_compile_definitions(${TARGET_NAIVETESTSP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=2) target_link_libraries(${TARGET_NAIVETESTSP} ${COMMON_LINK_LIBRARIES}) set_target_properties(${TARGET_NAIVETESTSP} PROPERTIES ${COMMON_TARGET_PROPERTIES}) # Test naivetestdp add_test_dft(${TARGET_NAIVETESTDP}_1 $ 1) add_test_dft(${TARGET_NAIVETESTDP}_2 $ 2) add_test_dft(${TARGET_NAIVETESTDP}_3 $ 3) add_test_dft(${TARGET_NAIVETESTDP}_4 $ 4) add_test_dft(${TARGET_NAIVETESTDP}_5 $ 5) add_test_dft(${TARGET_NAIVETESTDP}_10 $ 10) # Test naivetestsp add_test_dft(${TARGET_NAIVETESTSP}_1 $ 1) add_test_dft(${TARGET_NAIVETESTSP}_2 $ 2) add_test_dft(${TARGET_NAIVETESTSP}_3 $ 3) add_test_dft(${TARGET_NAIVETESTSP}_4 $ 4) add_test_dft(${TARGET_NAIVETESTSP}_5 $ 5) add_test_dft(${TARGET_NAIVETESTSP}_10 $ 10) endif() # Target executable roundtriptest1ddp set(TARGET_ROUNDTRIPTEST1DDP "roundtriptest1ddp") add_executable(${TARGET_ROUNDTRIPTEST1DDP} roundtriptest1d.c ${PROJECT_SOURCE_DIR}/include/sleefdft.h) add_dependencies(${TARGET_ROUNDTRIPTEST1DDP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) target_compile_definitions(${TARGET_ROUNDTRIPTEST1DDP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=1) target_link_libraries(${TARGET_ROUNDTRIPTEST1DDP} ${COMMON_LINK_LIBRARIES}) set_target_properties(${TARGET_ROUNDTRIPTEST1DDP} PROPERTIES ${COMMON_TARGET_PROPERTIES}) # Target executable roundtriptest1dsp set(TARGET_ROUNDTRIPTEST1DSP "roundtriptest1dsp") add_executable(${TARGET_ROUNDTRIPTEST1DSP} roundtriptest1d.c ${PROJECT_SOURCE_DIR}/include/sleefdft.h) add_dependencies(${TARGET_ROUNDTRIPTEST1DSP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) target_compile_definitions(${TARGET_ROUNDTRIPTEST1DSP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=2) target_link_libraries(${TARGET_ROUNDTRIPTEST1DSP} ${COMMON_LINK_LIBRARIES}) set_target_properties(${TARGET_ROUNDTRIPTEST1DSP} PROPERTIES ${COMMON_TARGET_PROPERTIES}) # Target executable roundtriptest2ddp set(TARGET_ROUNDTRIPTEST2DDP "roundtriptest2ddp") add_executable(${TARGET_ROUNDTRIPTEST2DDP} roundtriptest2d.c ${PROJECT_SOURCE_DIR}/include/sleefdft.h) add_dependencies(${TARGET_ROUNDTRIPTEST2DDP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) target_compile_definitions(${TARGET_ROUNDTRIPTEST2DDP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=1) target_link_libraries(${TARGET_ROUNDTRIPTEST2DDP} ${COMMON_LINK_LIBRARIES}) set_target_properties(${TARGET_ROUNDTRIPTEST2DDP} PROPERTIES ${COMMON_TARGET_PROPERTIES}) # Target executable roundtriptest2dsp set(TARGET_ROUNDTRIPTEST2DSP "roundtriptest2dsp") add_executable(${TARGET_ROUNDTRIPTEST2DSP} roundtriptest2d.c ${PROJECT_SOURCE_DIR}/include/sleefdft.h) add_dependencies(${TARGET_ROUNDTRIPTEST2DSP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) target_compile_definitions(${TARGET_ROUNDTRIPTEST2DSP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=2) target_link_libraries(${TARGET_ROUNDTRIPTEST2DSP} ${COMMON_LINK_LIBRARIES}) set_target_properties(${TARGET_ROUNDTRIPTEST2DSP} PROPERTIES ${COMMON_TARGET_PROPERTIES}) if (LIBFFTW3 AND NOT SLEEF_DISABLE_FFTW) # Target executable fftwtest1ddp set(TARGET_FFTWTEST1DDP "fftwtest1ddp") add_executable(${TARGET_FFTWTEST1DDP} fftwtest1d.c ${PROJECT_SOURCE_DIR}/include/sleefdft.h) add_dependencies(${TARGET_FFTWTEST1DDP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) target_compile_definitions(${TARGET_FFTWTEST1DDP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=1) target_link_libraries(${TARGET_FFTWTEST1DDP} ${COMMON_LINK_LIBRARIES} ${LIBFFTW3}) set_target_properties(${TARGET_FFTWTEST1DDP} PROPERTIES ${COMMON_TARGET_PROPERTIES}) # Target executable fftwtest1dsp set(TARGET_FFTWTEST1DSP "fftwtest1dsp") add_executable(${TARGET_FFTWTEST1DSP} fftwtest1d.c ${PROJECT_SOURCE_DIR}/include/sleefdft.h) add_dependencies(${TARGET_FFTWTEST1DSP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) target_compile_definitions(${TARGET_FFTWTEST1DSP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=2) target_link_libraries(${TARGET_FFTWTEST1DSP} ${COMMON_LINK_LIBRARIES} ${LIBFFTW3}) set_target_properties(${TARGET_FFTWTEST1DSP} PROPERTIES ${COMMON_TARGET_PROPERTIES}) # Target executable fftwtest2ddp set(TARGET_FFTWTEST2DDP "fftwtest2ddp") add_executable(${TARGET_FFTWTEST2DDP} fftwtest2d.c ${PROJECT_SOURCE_DIR}/include/sleefdft.h) add_dependencies(${TARGET_FFTWTEST2DDP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) target_compile_definitions(${TARGET_FFTWTEST2DDP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=1) target_link_libraries(${TARGET_FFTWTEST2DDP} ${COMMON_LINK_LIBRARIES} ${LIBFFTW3}) set_target_properties(${TARGET_FFTWTEST2DDP} PROPERTIES ${COMMON_TARGET_PROPERTIES}) # Target executable fftwtest2dsp set(TARGET_FFTWTEST2DSP "fftwtest2dsp") add_executable(${TARGET_FFTWTEST2DSP} fftwtest2d.c ${PROJECT_SOURCE_DIR}/include/sleefdft.h) add_dependencies(${TARGET_FFTWTEST2DSP} ${TARGET_HEADERS} ${TARGET_LIBSLEEF} ${TARGET_LIBDFT}) target_compile_definitions(${TARGET_FFTWTEST2DSP} PRIVATE ${COMMON_TARGET_DEFINITIONS} BASETYPEID=2) target_link_libraries(${TARGET_FFTWTEST2DSP} ${COMMON_LINK_LIBRARIES} ${LIBFFTW3}) set_target_properties(${TARGET_FFTWTEST2DSP} PROPERTIES ${COMMON_TARGET_PROPERTIES}) # Test fftwtest1ddp add_test_dft(${TARGET_FFTWTEST1DDP}_12 $ 12) add_test_dft(${TARGET_FFTWTEST1DDP}_16 $ 16) # Test fftwtest1dsp add_test_dft(${TARGET_FFTWTEST1DSP}_12 $ 12) add_test_dft(${TARGET_FFTWTEST1DSP}_16 $ 16) # Test fftwtest2ddp add_test_dft(${TARGET_FFTWTEST2DDP}_2_2 $ 2 2) add_test_dft(${TARGET_FFTWTEST2DDP}_4_4 $ 4 4) add_test_dft(${TARGET_FFTWTEST2DDP}_8_8 $ 8 8) add_test_dft(${TARGET_FFTWTEST2DDP}_10_10 $ 10 10) add_test_dft(${TARGET_FFTWTEST2DDP}_5_15 $ 5 15) # Test fftwtest2dsp add_test_dft(${TARGET_FFTWTEST2DSP}_2_2 $ 2 2) add_test_dft(${TARGET_FFTWTEST2DSP}_4_4 $ 4 4) add_test_dft(${TARGET_FFTWTEST2DSP}_8_8 $ 8 8) add_test_dft(${TARGET_FFTWTEST2DSP}_10_10 $ 10 10) add_test_dft(${TARGET_FFTWTEST2DSP}_5_15 $ 5 15) else(LIBFFTW3 AND NOT SLEEF_DISABLE_FFTW) if(MSVC OR SLEEF_CLANG_ON_WINDOWS) # Test roundtriptestdp add_test_dft(${TARGET_ROUNDTRIPTEST1DDP}_1 $ 1 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DDP}_2 $ 2 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DDP}_3 $ 3 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DDP}_4 $ 4 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DDP}_5 $ 5 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DDP}_10 $ 10 10) # Test roundtriptestsp add_test_dft(${TARGET_ROUNDTRIPTEST1DSP}_1 $ 1 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DSP}_2 $ 2 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DSP}_3 $ 3 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DSP}_4 $ 4 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DSP}_5 $ 5 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DSP}_10 $ 10 10) endif() add_test_dft(${TARGET_ROUNDTRIPTEST1DDP}_12 $ 12 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DDP}_16 $ 16 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DSP}_12 $ 12 10) add_test_dft(${TARGET_ROUNDTRIPTEST1DSP}_16 $ 16 10) # Test roundtriptest2ddp add_test_dft(${TARGET_ROUNDTRIPTEST2DDP}_2_2 $ 2 2 10) add_test_dft(${TARGET_ROUNDTRIPTEST2DDP}_4_4 $ 4 4 10) add_test_dft(${TARGET_ROUNDTRIPTEST2DDP}_8_8 $ 8 8 10) add_test_dft(${TARGET_ROUNDTRIPTEST2DDP}_10_10 $ 10 10 2) add_test_dft(${TARGET_ROUNDTRIPTEST2DDP}_5_15 $ 5 15 2) # Test roundtriptest2dsp add_test_dft(${TARGET_ROUNDTRIPTEST2DSP}_2_2 $ 2 2 10) add_test_dft(${TARGET_ROUNDTRIPTEST2DSP}_4_4 $ 4 4 10) add_test_dft(${TARGET_ROUNDTRIPTEST2DSP}_8_8 $ 8 8 10) add_test_dft(${TARGET_ROUNDTRIPTEST2DSP}_10_10 $ 10 10 2) add_test_dft(${TARGET_ROUNDTRIPTEST2DSP}_5_15 $ 5 15 2) endif(LIBFFTW3 AND NOT SLEEF_DISABLE_FFTW)