# Copyright 2010-2025 Google LLC # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### # Bazel now uses Bzlmod by default to manage external dependencies. # Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel. # # For more details, please check https://github.com/bazelbuild/bazel/issues/18958 ############################################################################### module( name = "or-tools", version = "9.15", ) # see https://registry.bazel.build/ # Bazel dependencies bazel_dep(name = "bazel_skylib", version = "1.8.2") bazel_dep(name = "contrib_rules_jvm", version = "0.28.0") bazel_dep(name = "platforms", version = "1.0.0") bazel_dep(name = "rules_cc", version = "0.2.9") bazel_dep(name = "rules_go", version = "0.53.0") bazel_dep(name = "rules_java", version = "8.14.0") bazel_dep(name = "rules_jvm_external", version = "6.7") bazel_dep(name = "rules_license", version = "1.0.0") bazel_dep(name = "rules_proto", version = "7.1.0") bazel_dep(name = "rules_python", version = "1.7.0") bazel_dep(name = "rules_shell", version = "0.6.1") # OR-Tools C++ dependencies bazel_dep(name = "abseil-cpp", version = "20250814.1") bazel_dep(name = "bzip2", version = "1.0.8.bcr.2") bazel_dep(name = "eigen", version = "3.4.0.bcr.3") bazel_dep(name = "glpk", version = "5.0.bcr.4") bazel_dep(name = "google_benchmark", version = "1.9.2") bazel_dep(name = "googletest", version = "1.17.0") bazel_dep(name = "highs", version = "1.11.0") bazel_dep(name = "protobuf-matchers", version = "0.1.1") bazel_dep(name = "protobuf", version = "32.0") bazel_dep(name = "re2", version = "2025-08-12") bazel_dep(name = "scip", version = "9.2.3") bazel_dep(name = "zlib", version = "1.3.1.bcr.7") # OR-Tools wrappers dependencies bazel_dep(name = "gazelle", version = "0.43.0") bazel_dep(name = "pybind11_abseil", version = "202402.0") bazel_dep(name = "pybind11_bazel", version = "2.13.6") bazel_dep(name = "pybind11_protobuf", version = "0.0.0-20240524-1d7a729") bazel_dep(name = "swig", version = "4.3.0") git_override( module_name = "pybind11_bazel", commit = "2b6082a4d9d163a52299718113fa41e4b7978db5", patch_strip = 1, patches = ["//:patches/pybind11_bazel.patch"], remote = "https://github.com/pybind/pybind11_bazel.git", ) git_override( module_name = "pybind11_abseil", commit = "70f8b693b3b70573ca785ef62d9f48054f45d786", patch_strip = 1, patches = ["//:patches/pybind11_abseil.patch"], remote = "https://github.com/pybind/pybind11_abseil.git", ) git_override( module_name = "pybind11_protobuf", commit = "f02a2b7653bc50eb5119d125842a3870db95d251", remote = "https://github.com/pybind/pybind11_protobuf.git", ) # Python # https://rules-python.readthedocs.io/en/latest/toolchains.html#library-modules-with-dev-only-python-usage DEFAULT_PYTHON = "3.12" python = use_extension("@rules_python//python/extensions:python.bzl", "python", dev_dependency = True) python.defaults(python_version = DEFAULT_PYTHON) python.toolchain(python_version = DEFAULT_PYTHON) pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") [ pip.parse( envsubst = ["PIP_INDEX_URL"], experimental_index_url = "${PIP_INDEX_URL:-https://pypi.org/simple}", hub_name = hub_name, python_version = DEFAULT_PYTHON, requirements_lock = requirements_lock, ) for hub_name, requirements_lock in [ ("ortools_pip_deps", "//bazel:ortools_requirements.txt"), ("ortools_notebook_deps", "//bazel:notebook_requirements.txt"), ] ] use_repo(pip, pip_deps = "ortools_pip_deps") use_repo(pip, "ortools_notebook_deps") # Java JUNIT_PLATFORM_VERSION = "1.9.2" JUNIT_JUPITER_VERSION = "5.9.2" maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") maven.install( artifacts = [ "net.java.dev.jna:jna:5.14.0", "com.google.truth:truth:0.32", "org.junit.platform:junit-platform-launcher:%s" % JUNIT_PLATFORM_VERSION, "org.junit.platform:junit-platform-reporting:%s" % JUNIT_PLATFORM_VERSION, "org.junit.jupiter:junit-jupiter-api:%s" % JUNIT_JUPITER_VERSION, "org.junit.jupiter:junit-jupiter-params:%s" % JUNIT_JUPITER_VERSION, "org.junit.jupiter:junit-jupiter-engine:%s" % JUNIT_JUPITER_VERSION, ], repositories = [ "https://repo1.maven.org/maven2", ], ) use_repo(maven, "maven") go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk") go_sdk.download(version = "1.22.4") go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps") go_deps.module( path = "github.com/golang/glog", sum = "h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY=", version = "v1.2.2", ) go_deps.module( path = "github.com/golang/protobuf", sum = "h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=", version = "v1.5.4", ) go_deps.module( path = "github.com/google/go-cmp", sum = "h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=", version = "v0.6.0", ) go_deps.module( path = "google.golang.org/protobuf", sum = "h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=", version = "v1.36.5", ) go_deps.module( path = "golang.org/x/xerrors", sum = "h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=", version = "v0.0.0-20191204190536-9bdfabe68543", ) use_repo( go_deps, "com_github_golang_glog", "com_github_golang_protobuf", "com_github_google_go_cmp", "org_golang_google_protobuf", "org_golang_x_xerrors", )