Files
2025-10-16 13:06:55 +02:00

234 lines
7.3 KiB
Python

# 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.
load("@rules_cc//cc:cc_library.bzl", "cc_library")
package(default_visibility = ["//visibility:public"])
cc_library(
name = "preprocessor",
srcs = ["preprocessor.cc"],
hdrs = ["preprocessor.h"],
deps = [
"//ortools/glop:preprocessor",
"//ortools/lp_data",
"//ortools/lp_data:base",
"//ortools/lp_data:lp_utils",
"//ortools/lp_data:sparse",
"//ortools/lp_data:sparse_column",
"//ortools/util:fp_utils",
"//ortools/util:return_macros",
"//ortools/util:stats",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
],
)
cc_library(
name = "proto_utils",
hdrs = ["proto_utils.h"],
deps = [
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/port:proto_utils",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/status:statusor",
"@protobuf",
],
)
cc_library(
name = "glop_proto_solver",
srcs = ["glop_proto_solver.cc"],
hdrs = ["glop_proto_solver.h"],
deps = [
":proto_utils",
"//ortools/glop:lp_solver",
"//ortools/glop:parameters_cc_proto",
"//ortools/glop:parameters_validation",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/linear_solver:model_validator",
"//ortools/lp_data",
"//ortools/lp_data:base",
"//ortools/lp_data:proto_utils",
"//ortools/port:proto_utils",
"//ortools/util:lazy_mutable_copy",
"//ortools/util:logging",
"//ortools/util:time_limit",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
],
)
cc_library(
name = "pdlp_proto_solver",
srcs = ["pdlp_proto_solver.cc"],
hdrs = ["pdlp_proto_solver.h"],
deps = [
"//ortools/base:logging",
"//ortools/base:status_macros",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/linear_solver:model_validator",
"//ortools/pdlp:iteration_stats",
"//ortools/pdlp:primal_dual_hybrid_gradient",
"//ortools/pdlp:quadratic_program",
"//ortools/pdlp:solve_log_cc_proto",
"//ortools/pdlp:solvers_cc_proto",
"//ortools/port:proto_utils",
"//ortools/util:lazy_mutable_copy",
"@abseil-cpp//absl/status:statusor",
],
)
cc_library(
name = "sat_solver_utils",
srcs = ["sat_solver_utils.cc"],
hdrs = ["sat_solver_utils.h"],
deps = [
":preprocessor",
"//ortools/glop:parameters_cc_proto",
"//ortools/glop:preprocessor",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/lp_data",
"//ortools/lp_data:base",
"//ortools/lp_data:proto_utils",
"//ortools/util:logging",
"//ortools/util:time_limit",
"@abseil-cpp//absl/log:check",
],
)
cc_library(
name = "sat_proto_solver",
srcs = ["sat_proto_solver.cc"],
hdrs = ["sat_proto_solver.h"],
deps = [
":proto_utils",
":sat_solver_utils",
"//ortools/glop:preprocessor",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/linear_solver:model_validator",
"//ortools/lp_data",
"//ortools/lp_data:base",
"//ortools/port:proto_utils",
"//ortools/sat:cp_model_cc_proto",
"//ortools/sat:cp_model_solver",
"//ortools/sat:lp_utils",
"//ortools/sat:model",
"//ortools/sat:parameters_validation",
"//ortools/sat:sat_parameters_cc_proto",
"//ortools/util:lazy_mutable_copy",
"//ortools/util:logging",
"//ortools/util:time_limit",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/types:span",
],
)
cc_library(
name = "scip_params",
srcs = ["scip_params.cc"],
hdrs = ["scip_params.h"],
deps = [
"//ortools/base",
"//ortools/linear_solver:scip_helper_macros",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@scip",
],
)
cc_library(
name = "scip_proto_solver",
srcs = ["scip_proto_solver.cc"],
hdrs = ["scip_proto_solver.h"],
defines = select({
"//ortools/linear_solver:use_scip": ["USE_SCIP"],
"//conditions:default": [],
}),
deps = [
":scip_params",
"//ortools/base:status_macros",
"//ortools/base:timer",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/linear_solver:model_validator",
"//ortools/linear_solver:scip_helper_macros",
"//ortools/util:lazy_mutable_copy",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/container:btree",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/time",
] + select({
"//ortools/linear_solver:use_scip": ["@scip"],
"//conditions:default": [],
}),
)
cc_library(
name = "gurobi_proto_solver",
srcs = ["gurobi_proto_solver.cc"],
hdrs = ["gurobi_proto_solver.h"],
deps = [
"//ortools/base:status_macros",
"//ortools/base:timer",
"//ortools/linear_solver:gurobi_util",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/linear_solver:model_validator",
"//ortools/third_party_solvers:gurobi_environment",
"//ortools/util:lazy_mutable_copy",
"@abseil-cpp//absl/base:core_headers",
"@abseil-cpp//absl/cleanup",
"@abseil-cpp//absl/log",
"@abseil-cpp//absl/log:check",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:str_format",
"@abseil-cpp//absl/time",
],
)
cc_library(
name = "highs_proto_solver",
srcs = ["highs_proto_solver.cc"],
hdrs = ["highs_proto_solver.h"],
defines = select({
"//ortools/linear_solver:use_highs": ["USE_HIGHS"],
"//conditions:default": [],
}),
deps = [
"//ortools/base:timer",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/linear_solver:model_validator",
"//ortools/util:lazy_mutable_copy",
"@abseil-cpp//absl/status",
"@abseil-cpp//absl/status:statusor",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/time",
"@abseil-cpp//absl/types:optional",
"@highs",
"@protobuf",
],
)