From 8763b5983903fb4d810b33d600eec2cfdc9ff0c3 Mon Sep 17 00:00:00 2001 From: Laurent Perron Date: Wed, 13 Nov 2024 14:30:51 +0100 Subject: [PATCH] update MODULE.bazel, remove WORKSPACE --- MODULE.bazel | 8 ++ WORKSPACE | 382 --------------------------------------------------- 2 files changed, 8 insertions(+), 382 deletions(-) delete mode 100644 WORKSPACE diff --git a/MODULE.bazel b/MODULE.bazel index 8cf2486934..6f186e97e9 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,6 +39,14 @@ bazel_dep(name = "scip", version = "8.1.0") bazel_dep(name = "swig", version = "4.2.0") bazel_dep(name = "zlib", version = "1.3.1.bcr.3") +git_override( + module_name = "pybind11_abseil", + commit = "70f8b693b3b70573ca785ef62d9f48054f45d786", + patches = ["//patches:pybind11_abseil.patch"], + patch_strip = 1, + remote = "https://github.com/pybind/pybind11_abseil.git", +) + SUPPORTED_PYTHON_VERSIONS = [ "3.8", "3.9", diff --git a/WORKSPACE b/WORKSPACE deleted file mode 100644 index 4b556d8432..0000000000 --- a/WORKSPACE +++ /dev/null @@ -1,382 +0,0 @@ -# Copyright 2010-2024 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. - -workspace(name = "com_google_ortools") - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_repository") - -# Bazel Extensions -## Bazel Skylib rules. -git_repository( - name = "bazel_skylib", - tag = "1.7.1", - remote = "https://github.com/bazelbuild/bazel-skylib.git", -) -load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") -bazel_skylib_workspace() - -http_archive( - name = "bazel_features", - sha256 = "cec7fbc7bce6597cf2e83e01ddd9328a1bb057dc1a3092745238f49d3301ab5a", - strip_prefix = "bazel_features-1.12.0", - url = "https://github.com/bazel-contrib/bazel_features/releases/download/v1.12.0/bazel_features-v1.12.0.tar.gz", -) - -load("@bazel_features//:deps.bzl", "bazel_features_deps") -bazel_features_deps() - -## Bazel rules. -git_repository( - name = "platforms", - tag = "0.0.10", - remote = "https://github.com/bazelbuild/platforms.git", -) - -git_repository( - name = "rules_cc", - tag = "0.0.9", - remote = "https://github.com/bazelbuild/rules_cc.git", -) - -git_repository( - name = "rules_proto", - tag = "6.0.0", - remote = "https://github.com/bazelbuild/rules_proto.git", -) - -git_repository( - name = "rules_java", - tag = "7.7.0", - remote = "https://github.com/bazelbuild/rules_java.git", -) - -git_repository( - name = "rules_jvm_external", - tag = "6.2", - remote = "https://github.com/bazelbuild/rules_jvm_external.git", -) - -git_repository( - name = "contrib_rules_jvm", - tag = "v0.27.0", - remote = "https://github.com/bazel-contrib/rules_jvm.git", -) - -git_repository( - name = "rules_python", - tag = "0.36.0", - remote = "https://github.com/bazelbuild/rules_python.git", -) - -# Dependencies -## ZLIB -new_git_repository( - name = "zlib", - build_file = "@com_google_protobuf//:third_party/zlib.BUILD", - tag = "v1.3.1", - remote = "https://github.com/madler/zlib.git", -) - -## Abseil-cpp -git_repository( - name = "com_google_absl", - tag = "20240722.0", - patches = ["//patches:abseil-cpp-20240722.0.patch"], - patch_args = ["-p1"], - remote = "https://github.com/abseil/abseil-cpp.git", -) - -## Re2 -git_repository( - name = "com_google_re2", - tag = "2024-04-01", - remote = "https://github.com/google/re2.git", - repo_mapping = {"@abseil-cpp": "@com_google_absl"}, -) - -## Python -load("@rules_python//python:repositories.bzl", "py_repositories") -py_repositories() - -load("@rules_python//python:repositories.bzl", "python_register_toolchains") -DEFAULT_PYTHON = "3.11" -python_register_toolchains( - name = "python3_11", - python_version = DEFAULT_PYTHON, - ignore_root_user_error=True, -) -load("@python3_11//:defs.bzl", "interpreter") - -# Create a central external repo, @pip_deps, that contains Bazel targets for all the -# third-party packages specified in the bazel/requirements.txt file. -load("@rules_python//python:pip.bzl", "pip_parse") -pip_parse( - name = "pip_deps", - python_interpreter_target = interpreter, - requirements_lock = "//bazel:ortools_requirements.txt", -) - -load("@pip_deps//:requirements.bzl", - install_pip_deps="install_deps") -install_pip_deps() - -# Add a second repo @ortools_notebook_deps for jupyter notebooks. -pip_parse( - name = "ortools_notebook_deps", - python_interpreter_target = interpreter, - requirements_lock = "//bazel:notebook_requirements.txt", -) - -load("@ortools_notebook_deps//:requirements.bzl", - install_notebook_deps="install_deps") -install_notebook_deps() - -## Protobuf -# proto_library, cc_proto_library, and java_proto_library rules implicitly -# depend on @com_google_protobuf for protoc and proto runtimes. -# This statement defines the @com_google_protobuf repo. -git_repository( - name = "com_google_protobuf", - patches = ["//patches:protobuf-v28.3.patch"], - patch_args = ["-p1"], - tag = "v28.3", - remote = "https://github.com/protocolbuffers/protobuf.git", -) -# Load common dependencies. -load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") -protobuf_deps() - -load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies") -rules_proto_dependencies() - -load("@rules_proto//proto:toolchains.bzl", "rules_proto_toolchains") -rules_proto_toolchains() - -## Solvers -http_archive( - name = "glpk", - build_file = "//bazel:glpk.BUILD.bazel", - sha256 = "4a1013eebb50f728fc601bdd833b0b2870333c3b3e5a816eeba921d95bec6f15", - strip_prefix = "glpk-5.0", - url = "http://ftp.gnu.org/gnu/glpk/glpk-5.0.tar.gz", -) - -http_archive( - name = "bliss", - build_file = "//bazel:bliss.BUILD.bazel", - patches = ["//bazel:bliss-0.73.patch"], - sha256 = "f57bf32804140cad58b1240b804e0dbd68f7e6bf67eba8e0c0fa3a62fd7f0f84", - url = "https://github.com/google/or-tools/releases/download/v9.0/bliss-0.73.zip", - #url = "http://www.tcs.hut.fi/Software/bliss/bliss-0.73.zip", -) - -new_git_repository( - name = "scip", - build_file = "//bazel:scip.BUILD.bazel", - patches = ["//bazel:scip-v920.patch"], - patch_args = ["-p1"], - tag = "v920", - remote = "https://github.com/scipopt/scip.git", -) - -# Eigen has no Bazel build. -new_git_repository( - name = "eigen", - tag = "3.4.0", - remote = "https://gitlab.com/libeigen/eigen.git", - build_file_content = -""" -cc_library( - name = 'eigen', - srcs = [], - includes = ['.'], - hdrs = glob(['Eigen/**', 'unsupported/**']), - defines = ["EIGEN_MPL2_ONLY",], - visibility = ['//visibility:public'], -) -""" -) - -git_repository( - name = "highs", - branch = "v1.8.0", - remote = "https://github.com/ERGO-Code/HiGHS.git", -) - -## Swig support -# pcre source code repository -new_git_repository( - name = "pcre2", - build_file = "//bazel:pcre2.BUILD.bazel", - tag = "pcre2-10.42", - remote = "https://github.com/PCRE2Project/pcre2.git", -) - -# generate Patch: -# Checkout swig -# cd Source/CParse && bison -d -o parser.c parser.y -# ./autogen.sh -# ./configure -# make Lib/swigwarn.swg -# edit .gitignore and remove parser.h, parser.c, and swigwarn.swg -# git add Source/CParse/parser.h Source/CParse/parser.c Lib/swigwarn.swg -# git diff --staged Lib Source/CParse > swig.patch -# Edit swig.BUILD.bazel: -# edit version -new_git_repository( - name = "swig", - build_file = "//bazel:swig.BUILD.bazel", - patches = ["//bazel:swig.patch"], - patch_args = ["-p1"], - tag = "v4.2.0", - remote = "https://github.com/swig/swig.git", -) - -# Protobuf -load("@com_google_protobuf//bazel:system_python.bzl", "system_python") -system_python( - name = "system_python", - minimum_python_version = "3.8", -) - -# Absl python library -http_archive( - name = "com_google_absl_py", - repo_mapping = {"@six_archive": "@six"}, - sha256 = "0be59b82d65dfa1f995365dcfea2cc57989297b065fda696ef13f30fcc6c8e5b", - strip_prefix = "abseil-py-pypi-v0.15.0", - urls = [ - "https://github.com/abseil/abseil-py/archive/refs/tags/pypi-v0.15.0.tar.gz", - ], -) - -## `pybind11_bazel` -git_repository( - name = "pybind11_bazel", - tag = "v2.12.0", # 2024/04/08 - patches = ["//patches:pybind11_bazel.patch"], - patch_args = ["-p1"], - remote = "https://github.com/pybind/pybind11_bazel.git", -) - -new_git_repository( - name = "pybind11", - build_file = "@pybind11_bazel//:pybind11-BUILD.bazel", - tag = "v2.13.1", - remote = "https://github.com/pybind/pybind11.git", -) - -new_git_repository( - name = "org_pybind11_abseil", - tag = "v202402.0", - patches = ["//patches:pybind11_abseil.patch"], - patch_args = ["-p1"], - remote = "https://github.com/pybind/pybind11_abseil.git", -) - -new_git_repository( - name = "pybind11_protobuf", - commit = "ed430af1814a97e4017f2f808d3ba28cc10802f1", # 2024/10/02 - remote = "https://github.com/pybind/pybind11_protobuf.git", -) - -## Java support (with junit 5) -load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_java_toolchains") -rules_java_dependencies() -rules_java_toolchains() - -load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") -rules_jvm_external_deps() - -load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") -rules_jvm_external_setup() - -JUNIT_PLATFORM_VERSION = "1.9.2" -JUNIT_JUPITER_VERSION = "5.9.2" -load("@rules_jvm_external//:defs.bzl", "maven_install") -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", - ], -) - -load("@contrib_rules_jvm//:repositories.bzl", "contrib_rules_jvm_deps") -contrib_rules_jvm_deps() - -load("@contrib_rules_jvm//:setup.bzl", "contrib_rules_jvm_setup") -contrib_rules_jvm_setup() - -## Testing -git_repository( - name = "com_google_googletest", - tag = "v1.15.2", - remote = "https://github.com/google/googletest.git", -) - -git_repository( - name = "com_google_benchmark", - tag = "v1.8.5", - remote = "https://github.com/google/benchmark.git", -) - -# Go - -http_archive( - name = "io_bazel_rules_go", - sha256 = "33acc4ae0f70502db4b893c9fc1dd7a9bf998c23e7ff2c4517741d4049a976f8", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.48.0/rules_go-v0.48.0.zip", - "https://github.com/bazelbuild/rules_go/releases/download/v0.48.0/rules_go-v0.48.0.zip", - ], -) - -http_archive( - name = "bazel_gazelle", - sha256 = "d76bf7a60fd8b050444090dfa2837a4eaf9829e1165618ee35dceca5cbdf58d5", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.37.0/bazel-gazelle-v0.37.0.tar.gz", - "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.37.0/bazel-gazelle-v0.37.0.tar.gz", - ], -) - -load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") -load("//:deps.bzl", "go_dependencies") -# gazelle:repository_macro deps.bzl%go_dependencies -go_dependencies() - -load("@io_bazel_rules_go//go:deps.bzl", "go_download_sdk", "go_register_toolchains", "go_rules_dependencies") - -go_rules_dependencies() - -go_download_sdk( - name = "go_sdk_linux", - version = "1.22.4", -) - -go_register_toolchains() - -gazelle_dependencies( - go_env = { - "GOPROXY": "https://proxy.golang.org|direct", - }, -)