mirror of
				https://github.com/ml-explore/mlx.git
				synced 2025-11-04 10:38:10 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
# Doctest works fine with cmake 3.5
 | 
						|
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
 | 
						|
 | 
						|
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 OR MLX_BUILD_CUDA)
 | 
						|
  set(METAL_TEST_SOURCES gpu_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})
 | 
						|
 | 
						|
if(MLX_BUILD_CUDA)
 | 
						|
  # Find the CCCL headers in install dir.
 | 
						|
  target_compile_definitions(
 | 
						|
    mlx
 | 
						|
    PRIVATE
 | 
						|
      MLX_CCCL_DIR="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/cccl")
 | 
						|
endif()
 | 
						|
 | 
						|
target_link_libraries(tests PRIVATE mlx doctest)
 | 
						|
doctest_discover_tests(tests)
 | 
						|
add_test(NAME tests COMMAND tests)
 |