diff --git a/utils/bazel/WORKSPACE b/utils/bazel/WORKSPACE index 298b64fd56291..3822bcff61f47 100644 --- a/utils/bazel/WORKSPACE +++ b/utils/bazel/WORKSPACE @@ -27,6 +27,14 @@ load("@llvm-raw//utils/bazel:configure.bzl", "llvm_configure") llvm_configure(name = "llvm-project") +maybe( + http_archive, + name = "rules_python", + sha256 = "778aaeab3e6cfd56d681c89f5c10d7ad6bf8d2f1a72de9de55b23081b2d31618", + strip_prefix = "rules_python-0.34.0", + url = "https://github.com/bazelbuild/rules_python/releases/download/0.34.0/rules_python-0.34.0.tar.gz", +) + maybe( http_archive, name = "llvm_zlib", @@ -129,3 +137,21 @@ maybe( "https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz", ], ) + +maybe( + http_archive, + name = "pybind11", + build_file = "@llvm-raw//utils/bazel/third_party_build:pybind.BUILD", + sha256 = "201966a61dc826f1b1879a24a3317a1ec9214a918c8eb035be2f30c3e9cfbdcb", + strip_prefix = "pybind11-2.10.3", + url = "https://github.com/pybind/pybind11/archive/v2.10.3.zip", +) + +load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains") + +py_repositories() + +python_register_toolchains( + name = "python_3_12", + python_version = "3.12", +) diff --git a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel index 9ec5b793a1723..0d0224e6d6802 100644 --- a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel @@ -918,19 +918,6 @@ exports_files( glob(["lib/Bindings/Python/**/*.cpp"]), ) -# In the targets related to Python bindings, the projects @pybind11 and -# @local_config_python are defined by @pybind11_bazel. The latter contains -# python headers, and can be configured in an out-of-tree bazel project via -# -# load("@pybind11_bazel//:python_configure.bzl", "python_configure") -# python_configure(name = "local_config_python") -# -# For more up-to-date instructions, see -# https://github.com/pybind/pybind11_bazel -# -# Some out-of-tree projects alias @python_runtime//:headers to -# @local_config_python//:python_headers. - filegroup( name = "MLIRBindingsPythonHeaderFiles", srcs = glob([ @@ -946,16 +933,12 @@ cc_library( "include", "lib/Bindings/Python", ], - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], textual_hdrs = [":MLIRBindingsPythonHeaderFiles"], deps = [ ":CAPIIRHeaders", ":CAPITransformsHeaders", - "@local_config_python//:python_headers", "@pybind11", + "@rules_python//python/cc:current_py_cc_headers", ], ) @@ -965,16 +948,12 @@ cc_library( "include", "lib/Bindings/Python", ], - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], textual_hdrs = [":MLIRBindingsPythonHeaderFiles"], deps = [ ":CAPIIR", ":CAPITransforms", - "@local_config_python//:python_headers", "@pybind11", + "@rules_python//python/cc:current_py_cc_headers", ], ) @@ -1008,10 +987,6 @@ cc_library( srcs = [":MLIRBindingsPythonSourceFiles"], copts = PYBIND11_COPTS, features = PYBIND11_FEATURES, - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], deps = [ ":CAPIAsync", ":CAPIDebug", @@ -1021,8 +996,8 @@ cc_library( ":Support", ":config", "//llvm:Support", - "@local_config_python//:python_headers", "@pybind11", + "@rules_python//python/cc:current_py_cc_headers", ], ) @@ -1031,10 +1006,6 @@ cc_library( srcs = [":MLIRBindingsPythonSourceFiles"], copts = PYBIND11_COPTS, features = PYBIND11_FEATURES, - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], deps = [ ":CAPIAsyncHeaders", ":CAPIDebugHeaders", @@ -1043,8 +1014,8 @@ cc_library( ":Support", ":config", "//llvm:Support", - "@local_config_python//:python_headers", "@pybind11", + "@rules_python//python/cc:current_py_cc_headers", ], ) @@ -1052,10 +1023,6 @@ cc_library( # MLIRBindingsPythonCoreNoCAPI. cc_library( name = "MLIRBindingsPythonCAPIObjects", - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], deps = [ ":CAPIAsyncObjects", ":CAPIDebugObjects", @@ -1074,10 +1041,6 @@ cc_binary( features = PYBIND11_FEATURES, linkshared = 1, linkstatic = 0, - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], deps = [ ":MLIRBindingsPythonCore", ":MLIRBindingsPythonHeadersAndDeps", @@ -1091,10 +1054,6 @@ cc_binary( features = PYBIND11_FEATURES, linkshared = 1, linkstatic = 0, - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], deps = [ ":CAPIIR", ":CAPILinalg", @@ -1109,10 +1068,6 @@ cc_binary( features = PYBIND11_FEATURES, linkshared = 1, linkstatic = 0, - tags = [ - "manual", # External dependency - "nobuildkite", - ], deps = [ ":CAPIIR", ":CAPILLVM", @@ -1128,10 +1083,6 @@ cc_binary( features = PYBIND11_FEATURES, linkshared = 1, linkstatic = 0, - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], deps = [ ":CAPIIR", ":CAPIQuant", @@ -1147,10 +1098,6 @@ cc_binary( features = PYBIND11_FEATURES, linkshared = 1, linkstatic = 0, - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], deps = [ ":CAPIIR", ":CAPISparseTensor", @@ -1167,15 +1114,11 @@ cc_binary( features = PYBIND11_FEATURES, linkshared = 1, linkstatic = 0, - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], deps = [ ":CAPIExecutionEngine", ":MLIRBindingsPythonHeadersAndDeps", - "@local_config_python//:python_headers", "@pybind11", + "@rules_python//python/cc:current_py_cc_headers", ], ) @@ -1187,15 +1130,11 @@ cc_binary( features = PYBIND11_FEATURES, linkshared = 1, linkstatic = 0, - tags = [ - "manual", # External dependency - "nobuildkite", # TODO(gcmn): Add support for this target - ], deps = [ ":CAPILinalg", ":MLIRBindingsPythonHeadersAndDeps", - "@local_config_python//:python_headers", "@pybind11", + "@rules_python//python/cc:current_py_cc_headers", ], ) diff --git a/utils/bazel/third_party_build/pybind.BUILD b/utils/bazel/third_party_build/pybind.BUILD new file mode 100644 index 0000000000000..d9fb431dbabb5 --- /dev/null +++ b/utils/bazel/third_party_build/pybind.BUILD @@ -0,0 +1,15 @@ +cc_library( + name = "pybind11", + hdrs = glob( + include = ["include/pybind11/**/*.h"], + exclude = [ + # Deprecated file that just emits a warning + "include/pybind11/common.h", + ], + ), + includes = ["include"], + visibility = ["//visibility:public"], + deps = [ + "@rules_python//python/cc:current_py_cc_headers", + ], +)