From d2e0b0465c527e5fd76454222e05a1ee338e7064 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Fri, 23 May 2025 14:10:12 +0200 Subject: [PATCH] Feat: add USE_SYSTEM_FMT CMake option --- CMakeLists.txt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4bf8d2d3e..357477b79 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,7 @@ option(MLX_BUILD_SAFETENSORS "Include support for safetensors format" ON) option(MLX_BUILD_BLAS_FROM_SOURCE "Build OpenBLAS from source code" OFF) option(MLX_METAL_JIT "Use JIT compilation for Metal kernels" OFF) option(BUILD_SHARED_LIBS "Build mlx as a shared library" OFF) +option(USE_SYSTEM_FMT "Use system's provided fmt library" OFF) # --------------------- Processor tests ------------------------- message( @@ -234,12 +235,16 @@ target_include_directories( # Do not add mlx_EXPORTS define for shared library. set_target_properties(mlx PROPERTIES DEFINE_SYMBOL "") -FetchContent_Declare( - fmt - GIT_REPOSITORY https://github.com/fmtlib/fmt.git - GIT_TAG 10.2.1 - EXCLUDE_FROM_ALL) -FetchContent_MakeAvailable(fmt) +if(USE_SYSTEM_FMT) + find_package(fmt REQUIRED) +else() + FetchContent_Declare( + fmt + GIT_REPOSITORY https://github.com/fmtlib/fmt.git + GIT_TAG 10.2.1 + EXCLUDE_FROM_ALL) + FetchContent_MakeAvailable(fmt) +endif() target_link_libraries(mlx PRIVATE $) if(MLX_BUILD_PYTHON_BINDINGS)