| # 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_) | |
| set(MLX_INCLUDE_DIRS | |
| "${MLX_INCLUDE_DIRS};" | |
| @PACKAGE_CMAKE_INSTALL_INCLUDEDIR@/metal_cpp | |
| ) | |
| 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() | |
| endif() | |
| set_target_properties(mlx PROPERTIES | |
| CXX_STANDARD 17 | |
| INTERFACE_COMPILE_OPTIONS "${MLX_CXX_FLAGS}" | |
| ) | |
| include(FindPackageHandleStandardArgs) | |
| find_package_handle_standard_args(MLX DEFAULT_MSG MLX_LIBRARY MLX_INCLUDE_DIRS) | |