diff --git a/MODULE.bazel b/MODULE.bazel index 98f03c8..0404c79 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -8,6 +8,9 @@ bazel_dep(name = "pybind11_bazel", version = "2.13.6") DEFAULT_PYTHON_VERSION = "3.11" +python = use_extension("@rules_python//python/extensions:python.bzl", "python") +python.toolchain(python_version = DEFAULT_PYTHON_VERSION, is_default = True) + python_configure = use_extension("@pybind11_bazel//:python_configure.bzl", "extension") use_repo(python_configure, "local_config_python") @@ -16,7 +19,7 @@ pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") pip.parse( hub_name = "pypi", - python_version = "3.11", + python_version = DEFAULT_PYTHON_VERSION, requirements_lock = "//src/py:requirements_lock.txt", ) diff --git a/WORKSPACE b/WORKSPACE index c2af5ef..ded3a8f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -66,11 +66,3 @@ http_archive( urls = ["https://github.com/bazelbuild/platforms/archive/refs/tags/0.0.6.zip"], strip_prefix = "platforms-0.0.6", ) - -http_archive( - name = "stim_py", - build_file = "//external:stim_py.BUILD", - sha256 = "95236006859d6754be99629d4fb44788e742e962ac8c59caad421ca088f7350e", - strip_prefix = "stim-1.15.0", - urls = ["https://github.com/quantumlib/Stim/releases/download/v1.15.0/stim-1.15.0.tar.gz"], -) diff --git a/external/stim_py.BUILD b/external/stim_py.BUILD deleted file mode 100644 index 7c14e00..0000000 --- a/external/stim_py.BUILD +++ /dev/null @@ -1,64 +0,0 @@ -load("@pybind11_bazel//:build_defs.bzl", "pybind_library") -load("@pybind11_bazel//:build_defs.bzl", "pybind_extension") - -SOURCE_FILES_NO_MAIN = glob( - [ - "src/**/*.cc", - "src/**/*.h", - "src/**/*.inl", - ], - exclude = glob([ - "src/**/*.test.cc", - "src/**/*.test.h", - "src/**/*.perf.cc", - "src/**/*.perf.h", - "src/**/*.pybind.cc", - "src/**/*.pybind.h", - "src/**/main.cc", - ]), -) - -PYBIND_MODULES = [ - "src/stim/py/march.pybind.cc", - "src/stim/py/stim.pybind.cc", -] - -PYBIND_FILES_WITHOUT_MODULES = glob( - [ - "src/**/*.pybind.cc", - "src/**/*.pybind.h", - ], - exclude=PYBIND_MODULES, -) - - - -pybind_library( - name = "stim_pybind_lib", - srcs = SOURCE_FILES_NO_MAIN + PYBIND_FILES_WITHOUT_MODULES, - copts = [ - "-O3", - "-std=c++20", - "-fvisibility=hidden", - "-march=native", - "-DVERSION_INFO=0.0.dev0", - ], - includes = ["src/"], - visibility = ["//visibility:public"], -) - -pybind_extension( - name = "stim", - srcs = PYBIND_MODULES, - copts = [ - "-O3", - "-std=c++20", - "-fvisibility=hidden", - "-march=native", - "-DSTIM_PYBIND11_MODULE_NAME=stim", - "-DVERSION_INFO=0.0.dev0", - ], - deps=[":stim_pybind_lib"], - includes = ["src/"], - visibility = ["//visibility:public"], -) diff --git a/src/BUILD b/src/BUILD index a222eaf..b2cc362 100644 --- a/src/BUILD +++ b/src/BUILD @@ -15,6 +15,7 @@ # load("@benchmark//:benchmark.bzl", "cc_benchmark") load("@pybind11_bazel//:build_defs.bzl", "pybind_extension", "pybind_library") load("@rules_python//python:defs.bzl", "py_library") +load("@rules_python//python:packaging.bzl", "py_wheel") package(default_visibility = ["//visibility:public"]) @@ -63,7 +64,6 @@ cc_library( ], ) - pybind_library( name = "tesseract_decoder_pybind", srcs = [ @@ -77,7 +77,7 @@ pybind_library( ":libutils", ":libsimplex", ":libtesseract", - "@stim_py//:stim_pybind_lib", + "@stim//:stim_pybind_lib", ], ) @@ -88,10 +88,20 @@ pybind_extension( ], deps = [ ":tesseract_decoder_pybind", - "@stim_py//:stim", ], ) +py_wheel( + name="tesseract_decoder_wheel", + distribution = "tesseract_decoder", + deps=[ + ":tesseract_decoder", + ], + version = "0.0.dev0", + requires=[ + "stim", + ], +) py_library( name="lib_tesseract_decoder", @@ -214,3 +224,4 @@ cc_binary( ], ) + diff --git a/src/py/BUILD b/src/py/BUILD index 9f24e4c..7bc4a4f 100644 --- a/src/py/BUILD +++ b/src/py/BUILD @@ -7,6 +7,7 @@ py_test( visibility = ["//:__subpackages__"], deps = [ "@pypi//pytest", + "@pypi//stim", "//src:lib_tesseract_decoder", ], ) @@ -17,6 +18,7 @@ py_test( visibility = ["//:__subpackages__"], deps = [ "@pypi//pytest", + "@pypi//stim", "//src:lib_tesseract_decoder", ], ) @@ -27,6 +29,7 @@ py_test( visibility = ["//:__subpackages__"], deps = [ "@pypi//pytest", + "@pypi//stim", "//src:lib_tesseract_decoder", ], ) @@ -37,6 +40,7 @@ py_test( visibility = ["//:__subpackages__"], deps = [ "@pypi//pytest", + "@pypi//stim", "//src:lib_tesseract_decoder", ], )