| 
									
										
										
										
											2023-11-29 10:30:41 -08:00
										 |  |  | # Find MLX
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # Defines the following variables:
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | #   MLX_FOUND            : True if MLX is found
 | 
					
						
							|  |  |  | #   MLX_INCLUDE_DIRS     : Include directory
 | 
					
						
							|  |  |  | #   MLX_LIBRARIES        : Libraries to link against
 | 
					
						
							|  |  |  | #   MLX_CXX_FLAGS        : Additional compiler flags
 | 
					
						
							|  |  |  | #   MLX_BUILD_ACCELERATE : True if MLX was built with accelerate 
 | 
					
						
							|  |  |  | #   MLX_BUILD_METAL      : True if MLX was built with metal 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @PACKAGE_INIT@
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | include(@PACKAGE_MLX_CMAKE_INSTALL_MODULE_DIR@/MLXTargets.cmake)
 | 
					
						
							|  |  |  | include(@PACKAGE_MLX_CMAKE_INSTALL_MODULE_DIR@/extension.cmake)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set_and_check(MLX_LIBRARY_DIRS @PACKAGE_CMAKE_INSTALL_LIBDIR@)
 | 
					
						
							|  |  |  | set_and_check(MLX_INCLUDE_DIRS @PACKAGE_CMAKE_INSTALL_INCLUDEDIR@)
 | 
					
						
							|  |  |  | set(MLX_LIBRARIES mlx)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | find_library(MLX_LIBRARY mlx PATHS ${MLX_LIBRARY_DIRS})
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if (@MLX_BUILD_ACCELERATE@)
 | 
					
						
							|  |  |  |     set(MLX_BUILD_ACCELERATE @MLX_BUILD_ACCELERATE@)
 | 
					
						
							|  |  |  |     set(MLX_CXX_FLAGS ${MLX_CXX_FLAGS} -DACCELERATE_NEW_LAPACK)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if (@MLX_BUILD_METAL@)
 | 
					
						
							|  |  |  |     set(MLX_BUILD_METAL @MLX_BUILD_METAL@)
 | 
					
						
							|  |  |  |     set(MLX_CXX_FLAGS ${MLX_CXX_FLAGS} -D_METAL_)
 | 
					
						
							| 
									
										
										
										
											2024-11-15 16:54:36 -08:00
										 |  |  |     set(MLX_INCLUDE_DIRS 
 | 
					
						
							|  |  |  |         "${MLX_INCLUDE_DIRS};"
 | 
					
						
							| 
									
										
										
										
											2023-11-29 10:30:41 -08:00
										 |  |  |         @PACKAGE_CMAKE_INSTALL_INCLUDEDIR@/metal_cpp
 | 
					
						
							|  |  |  |     )
 | 
					
						
							| 
									
										
										
										
											2024-11-15 16:54:36 -08:00
										 |  |  |     if(@MLX_METAL_VERSION@ GREATER_EQUAL 310)
 | 
					
						
							|  |  |  |       set(MLX_INCLUDE_DIRS
 | 
					
						
							|  |  |  |         "${MLX_INCLUDE_DIRS};"
 | 
					
						
							|  |  |  |         @PACKAGE_CMAKE_INSTALL_INCLUDEDIR@/mlx/backend/metal/kernels/metal_3_1)
 | 
					
						
							|  |  |  |     else()
 | 
					
						
							|  |  |  |       set(MLX_INCLUDE_DIRS
 | 
					
						
							|  |  |  |         "${MLX_INCLUDE_DIRS};"
 | 
					
						
							|  |  |  |         @PACKAGE_CMAKE_INSTALL_INCLUDEDIR@/mlx/backend/metal/kernels/metal_3_0)
 | 
					
						
							|  |  |  |     endif()
 | 
					
						
							| 
									
										
										
										
											2023-11-29 10:30:41 -08:00
										 |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set_target_properties(mlx PROPERTIES
 | 
					
						
							|  |  |  |     CXX_STANDARD 17
 | 
					
						
							|  |  |  |     INTERFACE_COMPILE_OPTIONS "${MLX_CXX_FLAGS}"
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | include(FindPackageHandleStandardArgs)
 | 
					
						
							| 
									
										
										
										
											2024-11-15 16:54:36 -08:00
										 |  |  | find_package_handle_standard_args(MLX DEFAULT_MSG MLX_LIBRARY MLX_INCLUDE_DIRS)
 |