diff --git a/BUILD.bazel b/BUILD.bazel
index 36283fe63d..c1e18e271f 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -0,0 +1,163 @@
+# 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.
+
+exports_files(
+    ["src/lpi/lpi_glop.cpp"],
+)
+
+config_setting(
+    name = "on_linux",
+    constraint_values = [
+        "@platforms//os:linux",
+    ],
+)
+
+config_setting(
+    name = "on_macos",
+    constraint_values = [
+        "@platforms//os:macos",
+    ],
+)
+
+config_setting(
+    name = "on_windows",
+    constraint_values = [
+        "@platforms//os:windows",
+    ],
+)
+
+PLATFORM_FLAGS = select({
+    "on_linux": [
+        "-Wunknown-pragmas",
+        "-fexceptions",
+        "-DSYM=bliss",
+        "-DBLISS_VERSION=\\\"0.73\\\"",
+    ],
+    "on_macos": [
+        "-Wunknown-pragmas",
+        "-fexceptions",
+        "-DSYM=bliss",
+        "-DBLISS_VERSION=\\\"0.73\\\"",
+    ],
+    "on_windows": [
+        "/DSYM=none",
+        "/DSCIP_NO_SIGACTION",
+        "/DSCIP_NO_STRTOK_R",
+    ],
+    "//conditions:default": [],
+})
+
+PLATFORM_DEPS = select({
+    "on_linux": ["@bliss"],
+    "on_macos": ["@bliss"],
+    "on_windows": [],
+    "//conditions:default": [],
+})
+
+BLISS_FILE = select({
+    "on_linux": ["src/symmetry/compute_symmetry_bliss.cpp"],
+    "on_macos": ["src/symmetry/compute_symmetry_bliss.cpp"],
+    "on_windows": ["src/symmetry/compute_symmetry_none.cpp"],
+    "//conditions:default": ["src/symmetry/compute_symmetry_none.cpp"],
+})
+
+BASE_SRCS = glob(
+    [
+        "src/*/*.c",
+    ],
+    exclude = [
+        "src/lpi/lpi_*.c",
+        "src/nauty/*",
+        "src/scip/exprinterpret_*.c",
+        "src/scip/nlpi_filtersqp.c",
+        "src/scip/nlpi_worhp.c",
+        "src/scip/*_xyz.c",
+        "src/scip/sorttpl.c",
+        "src/symmetry/compute_symmetry_*.cpp",
+        "src/symmetry/*nauty*",
+        "src/tpi/tpi_*.c",
+    ],
+)
+
+BASE_HDRS = glob(
+    [
+        "src/*/*.h",
+        "src/*/*.hpp",
+        "src/scip/githash.c",
+        "src/scip/sorttpl.c",
+        "src/scip/buildflags.h",
+    ],
+    exclude = [ "src/scip/*_xyz.h" ],
+)
+
+BASE_COPTS = [
+    "$(STACK_FRAME_UNLIMITED)",  # src/scip/reader_cnf.c
+    "-DSCIP_IPOPT=\\\"NONE\\\"",
+    "-DSCIP_LPS=\\\"glop\\\"",
+    "-DSCIP_GITHASH=\\\"a740f0891e\\\"",
+]
+
+
+DEFINES = [
+    # Scip optionally depends on scip/config.h and scip/scip_export.h
+    # that are generated by build system.
+    #
+    # We need every library and binary that depends on SCIP libraries to
+    # define this macro. That is why we use `defines' here instead of
+    # `copts' or `local_defines'.
+    "NO_CONFIG_HEADER",
+]
+
+cc_library(
+    name = "scip",
+    srcs =  BASE_SRCS + BLISS_FILE + [
+        "src/scip/exprinterpret_none.c",
+        "src/tpi/tpi_none.c",
+    ],
+    hdrs = BASE_HDRS,
+    copts = BASE_COPTS + [
+        "-DTPI_NONE",  # src/tpi/tpi_none.h
+        "-DNPARASCIP",
+    ] + PLATFORM_FLAGS,
+    defines = DEFINES,
+    features = ["-parse_headers"],
+    includes = [
+        "src",
+    ],
+    visibility = ["//visibility:public"],
+    deps = [
+        "@zlib",
+    ] + PLATFORM_DEPS,
+)
+
+cc_library(
+    name = "scip_parallel",
+    srcs = BASE_SRCS + BLISS_FILE + [
+        "src/scip/exprinterpret_none.c",
+        "src/tpi/tpi_tnycthrd.c",
+    ],
+    hdrs = BASE_HDRS,
+    copts = BASE_COPTS + [
+        "-DTPI_TNY",  # src/tpi/tpi_tnycthrd.h
+        "-DPARASCIP",
+    ] + PLATFORM_FLAGS,
+    defines = DEFINES,
+    features = ["-parse_headers"],
+    includes = [
+        "src",
+    ],
+    visibility = ["//visibility:public"],
+    deps = [
+        "@zlib",
+    ] + PLATFORM_DEPS,
+)
