[Mlir-commits] [mlir] [mlir][python] add pyproject.toml (PR #124878)
Maksim Levental
llvmlistbot at llvm.org
Tue Jan 28 21:48:56 PST 2025
https://github.com/makslevental updated https://github.com/llvm/llvm-project/pull/124878
>From 5f9c0e7400f7f2383426db9ac57cda1f39529142 Mon Sep 17 00:00:00 2001
From: max <maksim.levental at gmail.com>
Date: Tue, 28 Jan 2025 23:52:11 -0500
Subject: [PATCH] [mlir][python] add pyproject.toml
---
mlir/CMakeLists.txt | 2 ++
mlir/python/CMakeLists.txt | 6 +++---
mlir/python/pyproject.toml | 40 ++++++++++++++++++++++++++++++++++++++
3 files changed, 45 insertions(+), 3 deletions(-)
create mode 100644 mlir/python/pyproject.toml
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index 9e786154a2b405..3b04244d23d37f 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -178,6 +178,8 @@ set(MLIR_BINDINGS_PYTHON_NB_DOMAIN "mlir"
CACHE STRING "nanobind domain for MLIR python bindings.")
set(MLIR_ENABLE_BINDINGS_PYTHON 0 CACHE BOOL
"Enables building of Python bindings.")
+set(MLIR_BINDINGS_PYTHON_INSTALL_PREFIX "python_packages/mlir_core/mlir" CACHE STRING
+ "Prefix under install directory to place python bindings")
set(MLIR_DETECT_PYTHON_ENV_PRIME_SEARCH 1 CACHE BOOL
"Prime the python detection by searching for a full 'Development' \
component first (temporary while diagnosing environment specific Python \
diff --git a/mlir/python/CMakeLists.txt b/mlir/python/CMakeLists.txt
index fb115a5f43423a..bf6627904f8662 100644
--- a/mlir/python/CMakeLists.txt
+++ b/mlir/python/CMakeLists.txt
@@ -356,7 +356,7 @@ declare_mlir_dialect_python_bindings(
ADD_TO_PARENT MLIRPythonSources.Dialects
ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/mlir"
TD_FILE dialects/EmitC.td
- SOURCES
+ SOURCES
dialects/emitc.py
DIALECT_NAME emitc)
@@ -764,7 +764,7 @@ endif()
add_mlir_python_common_capi_library(MLIRPythonCAPI
INSTALL_COMPONENT MLIRPythonModules
- INSTALL_DESTINATION python_packages/mlir_core/mlir/_mlir_libs
+ INSTALL_DESTINATION "${MLIR_BINDINGS_PYTHON_INSTALL_PREFIX}/_mlir_libs"
OUTPUT_DIRECTORY "${MLIR_BINARY_DIR}/python_packages/mlir_core/mlir/_mlir_libs"
RELATIVE_INSTALL_ROOT "../../../.."
DECLARED_HEADERS
@@ -795,7 +795,7 @@ endif()
add_mlir_python_modules(MLIRPythonModules
ROOT_PREFIX "${MLIR_BINARY_DIR}/python_packages/mlir_core/mlir"
- INSTALL_PREFIX "python_packages/mlir_core/mlir"
+ INSTALL_PREFIX "${MLIR_BINDINGS_PYTHON_INSTALL_PREFIX}"
DECLARED_SOURCES
MLIRPythonSources
MLIRPythonExtension.RegisterEverything
diff --git a/mlir/python/pyproject.toml b/mlir/python/pyproject.toml
new file mode 100644
index 00000000000000..6845df9fd5c1af
--- /dev/null
+++ b/mlir/python/pyproject.toml
@@ -0,0 +1,40 @@
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+# Copyright (c) 2025.
+
+[project]
+name = "mlir-python-bindings"
+version = "0.0.1"
+requires-python = ">=3.8,<=3.13"
+[project.urls]
+Homepage = "https://github.com/llvm/llvm-project"
+
+[build-system]
+requires = [
+ "scikit-build-core==0.10.7",
+ "typing_extensions==4.12.2",
+ "nanobind>=2.4, <3.0",
+ "numpy>=1.19.5, <=2.1.2",
+ "pybind11>=2.10.0, <=2.13.6",
+ "PyYAML>=5.4.0, <=6.0.1",
+ 'ml_dtypes>=0.1.0, <=0.6.0; python_version<"3.13"',
+ 'ml_dtypes>=0.5.0, <=0.6.0; python_version>="3.13"'
+]
+build-backend = "scikit_build_core.build"
+
+[tool.scikit-build]
+minimum-version = "0.10"
+build-dir = "../../build"
+cmake.source-dir = "../../llvm"
+wheel.exclude = ["bin", "include", "lib", "src", "share"]
+build.targets = ["MLIRPythonModules"]
+
+[tool.scikit-build.cmake.define]
+CMAKE_C_COMPILER_LAUNCHER = { env = "CMAKE_C_COMPILER_LAUNCHER", default = "" }
+CMAKE_CXX_COMPILER_LAUNCHER = { env = "CMAKE_CXX_COMPILER_LAUNCHER", default = "" }
+CMAKE_CXX_VISIBILITY_PRESET = "hidden"
+CMAKE_VERBOSE_MAKEFILE = "ON"
+LLVM_ENABLE_PROJECTS = "mlir"
+MLIR_ENABLE_BINDINGS_PYTHON = "ON"
+MLIR_BINDINGS_PYTHON_INSTALL_PREFIX = "mlir"
More information about the Mlir-commits
mailing list