FetchContent_Declare( doctest GIT_REPOSITORY "https://github.com/onqtam/doctest" GIT_TAG "ae7a13539fb71f270b87eb2e874fbac80bc8dda2") FetchContent_MakeAvailable(doctest) add_executable(tests ${PROJECT_SOURCE_DIR}/tests/tests.cpp) if(MLX_BUILD_METAL) set(METAL_TEST_SOURCES metal_tests.cpp) endif() include(${doctest_SOURCE_DIR}/scripts/cmake/doctest.cmake) target_sources( tests PRIVATE allocator_tests.cpp array_tests.cpp arg_reduce_tests.cpp autograd_tests.cpp blas_tests.cpp compile_tests.cpp custom_vjp_tests.cpp creations_tests.cpp device_tests.cpp einsum_tests.cpp export_import_tests.cpp eval_tests.cpp fft_tests.cpp load_tests.cpp ops_tests.cpp random_tests.cpp scheduler_tests.cpp utils_tests.cpp vmap_tests.cpp linalg_tests.cpp ${METAL_TEST_SOURCES}) target_link_libraries(tests PRIVATE mlx doctest) doctest_discover_tests(tests) add_test(NAME tests COMMAND tests)