# Each source test file is instantiated in single and double precision
set(PERFTESTS guru_timing_test manysmallprobs spreadtestnd spreadtestndall)

foreach(TEST ${PERFTESTS})
    add_executable(${TEST} ${TEST}.cpp)
    if(FINUFFT_USE_DUCC0)
        target_compile_definitions(${TEST} PRIVATE -DFINUFFT_USE_DUCC0)
    endif()
    finufft_link_test(${TEST})

    add_executable(${TEST}f ${TEST}.cpp)
    target_compile_definitions(${TEST}f PRIVATE -DSINGLE)
    if(FINUFFT_USE_DUCC0)
        target_compile_definitions(${TEST}f PRIVATE -DFINUFFT_USE_DUCC0)
    endif()
    finufft_link_test(${TEST}f)
endforeach()

include(CheckIncludeFile)
check_include_file("getopt.h" HAVE_GETOPT_H)
if(HAVE_GETOPT_H)
    add_executable(perftest perftest.cpp)
    if(FINUFFT_USE_DUCC0)
        target_compile_definitions(perftest PRIVATE -DFINUFFT_USE_DUCC0)
    endif()
    finufft_link_test(perftest)
endif()
