Files
mlx/python/src/CMakeLists.txt

63 lines
2.1 KiB
CMake
Raw Normal View History

nanobind_add_module(
2023-11-29 10:30:41 -08:00
core
NB_STATIC
STABLE_ABI
LTO
NOMINSIZE
NB_DOMAIN
mlx
2023-11-29 10:30:41 -08:00
${CMAKE_CURRENT_SOURCE_DIR}/mlx.cpp
${CMAKE_CURRENT_SOURCE_DIR}/array.cpp
${CMAKE_CURRENT_SOURCE_DIR}/convert.cpp
2023-11-29 10:30:41 -08:00
${CMAKE_CURRENT_SOURCE_DIR}/device.cpp
${CMAKE_CURRENT_SOURCE_DIR}/distributed.cpp
${CMAKE_CURRENT_SOURCE_DIR}/export.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fast.cpp
2023-11-29 10:30:41 -08:00
${CMAKE_CURRENT_SOURCE_DIR}/fft.cpp
${CMAKE_CURRENT_SOURCE_DIR}/indexing.cpp
${CMAKE_CURRENT_SOURCE_DIR}/load.cpp
${CMAKE_CURRENT_SOURCE_DIR}/metal.cpp
2025-08-20 17:20:22 -07:00
${CMAKE_CURRENT_SOURCE_DIR}/cuda.cpp
${CMAKE_CURRENT_SOURCE_DIR}/memory.cpp
${CMAKE_CURRENT_SOURCE_DIR}/mlx_func.cpp
2023-11-29 10:30:41 -08:00
${CMAKE_CURRENT_SOURCE_DIR}/ops.cpp
${CMAKE_CURRENT_SOURCE_DIR}/stream.cpp
${CMAKE_CURRENT_SOURCE_DIR}/transforms.cpp
${CMAKE_CURRENT_SOURCE_DIR}/random.cpp
${CMAKE_CURRENT_SOURCE_DIR}/linalg.cpp
${CMAKE_CURRENT_SOURCE_DIR}/constants.cpp
${CMAKE_CURRENT_SOURCE_DIR}/trees.cpp
${CMAKE_CURRENT_SOURCE_DIR}/utils.cpp)
2023-11-29 10:30:41 -08:00
if(NOT MLX_PYTHON_BINDINGS_OUTPUT_DIRECTORY)
if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
set(MLX_PYTHON_BINDINGS_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
else()
set(MLX_PYTHON_BINDINGS_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
endif()
2023-11-29 10:30:41 -08:00
endif()
set_target_properties(
core
PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${MLX_PYTHON_BINDINGS_OUTPUT_DIRECTORY}
# Do not append a sub-dir for multi-config generators like MSVC
# and XCode.
LIBRARY_OUTPUT_DIRECTORY_RELEASE
${MLX_PYTHON_BINDINGS_OUTPUT_DIRECTORY}
LIBRARY_OUTPUT_DIRECTORY_DEBUG
${MLX_PYTHON_BINDINGS_OUTPUT_DIRECTORY}
LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO
${MLX_PYTHON_BINDINGS_OUTPUT_DIRECTORY}
LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL
${MLX_PYTHON_BINDINGS_OUTPUT_DIRECTORY})
2023-11-29 10:30:41 -08:00
target_link_libraries(core PRIVATE mlx)
if(BUILD_SHARED_LIBS)
2025-06-06 10:41:51 -07:00
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
target_link_options(core PRIVATE -Wl,-rpath,@loader_path/lib)
else()
target_link_options(core PRIVATE -Wl,-rpath,\$ORIGIN/lib)
endif()
2023-11-29 10:30:41 -08:00
endif()