Files
ortools-clone/ortools/math_opt/solvers/BUILD.bazel

394 lines
14 KiB
Python

# Copyright 2010-2022 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_python//python:proto.bzl", "py_proto_library")
load("@rules_cc//cc:defs.bzl", "cc_proto_library")
package(default_visibility = ["//ortools/math_opt:__subpackages__"])
cc_library(
name = "gscip_solver",
srcs = [
"gscip_solver.cc",
"gscip_solver.h",
],
visibility = ["//visibility:public"],
deps = [
":gscip_solver_callback",
":message_callback_data",
"//ortools/base:cleanup",
"//ortools/base:map_util",
"//ortools/base:protoutil",
"//ortools/base:status_macros",
"//ortools/gscip",
"//ortools/gscip:gscip_cc_proto",
"//ortools/gscip:gscip_event_handler",
"//ortools/gscip:gscip_parameters",
"//ortools/linear_solver:scip_with_glop",
"//ortools/math_opt:callback_cc_proto",
"//ortools/math_opt:infeasible_subsystem_cc_proto",
"//ortools/math_opt:model_cc_proto",
"//ortools/math_opt:model_parameters_cc_proto",
"//ortools/math_opt:model_update_cc_proto",
"//ortools/math_opt:parameters_cc_proto",
"//ortools/math_opt:result_cc_proto",
"//ortools/math_opt:solution_cc_proto",
"//ortools/math_opt:sparse_containers_cc_proto",
"//ortools/math_opt/core:invalid_indicators",
"//ortools/math_opt/core:inverted_bounds",
"//ortools/math_opt/core:math_opt_proto_utils",
"//ortools/math_opt/core:solve_interrupter",
"//ortools/math_opt/core:solver_interface",
"//ortools/math_opt/core:sparse_submatrix",
"//ortools/math_opt/core:sparse_vector_view",
"//ortools/math_opt/validators:callback_validator",
"//ortools/port:proto_utils",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/log",
"@com_google_absl//absl/log:check",
"@com_google_absl//absl/log:die_if_null",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/status",
"@com_google_absl//absl/status:statusor",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
"@com_google_absl//absl/types:span",
"@com_google_protobuf//:protobuf",
],
alwayslink = 1,
)
cc_library(
name = "gurobi_callback",
srcs = ["gurobi_callback.cc"],
hdrs = ["gurobi_callback.h"],
deps = [
":message_callback_data",
"//ortools/base",
"//ortools/base:linked_hash_map",
"//ortools/base:protoutil",
"//ortools/base:status_macros",
"//ortools/gurobi:environment",
"//ortools/math_opt:callback_cc_proto",
"//ortools/math_opt:solution_cc_proto",
"//ortools/math_opt:sparse_containers_cc_proto",
"//ortools/math_opt/core:math_opt_proto_utils",
"//ortools/math_opt/core:solve_interrupter",
"//ortools/math_opt/core:solver_interface",
"//ortools/math_opt/core:sparse_vector_view",
"//ortools/math_opt/solvers/gurobi:g_gurobi",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/status",
"@com_google_absl//absl/status:statusor",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "gurobi_solver",
srcs = [
"gurobi_init_arguments.cc",
"gurobi_solver.cc",
"gurobi_solver.h",
],
hdrs = [
"gurobi_init_arguments.h",
],
visibility = ["//visibility:public"],
deps = [
":gurobi_callback",
":gurobi_cc_proto",
":message_callback_data",
"//ortools/base:linked_hash_map",
"//ortools/base:map_util",
"//ortools/base:protoutil",
"//ortools/base:status_macros",
"//ortools/gurobi:environment",
"//ortools/math_opt:callback_cc_proto",
"//ortools/math_opt:infeasible_subsystem_cc_proto",
"//ortools/math_opt:model_cc_proto",
"//ortools/math_opt:model_parameters_cc_proto",
"//ortools/math_opt:model_update_cc_proto",
"//ortools/math_opt:parameters_cc_proto",
"//ortools/math_opt:result_cc_proto",
"//ortools/math_opt:solution_cc_proto",
"//ortools/math_opt:sparse_containers_cc_proto",
"//ortools/math_opt/core:invalid_indicators",
"//ortools/math_opt/core:inverted_bounds",
"//ortools/math_opt/core:math_opt_proto_utils",
"//ortools/math_opt/core:non_streamable_solver_init_arguments",
"//ortools/math_opt/core:solve_interrupter",
"//ortools/math_opt/core:solver_interface",
"//ortools/math_opt/core:sorted",
"//ortools/math_opt/core:sparse_vector_view",
"//ortools/math_opt/solvers/gurobi:g_gurobi",
"//ortools/math_opt/validators:callback_validator",
"//ortools/port:proto_utils",
"@com_google_absl//absl/algorithm:container",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/log",
"@com_google_absl//absl/log:check",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/meta:type_traits",
"@com_google_absl//absl/status",
"@com_google_absl//absl/status:statusor",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
"@com_google_absl//absl/types:span",
"@com_google_protobuf//:protobuf",
],
alwayslink = 1,
)
cc_library(
name = "glop_solver",
srcs = [
"glop_solver.cc",
"glop_solver.h",
],
visibility = ["//visibility:public"],
deps = [
"//ortools/base:cleanup",
"//ortools/base:map_util",
"//ortools/base:protoutil",
"//ortools/base:status_macros",
"//ortools/base:strong_vector",
"//ortools/glop:lp_solver",
"//ortools/glop:parameters_cc_proto",
"//ortools/glop:parameters_validation",
"//ortools/lp_data",
"//ortools/lp_data:base",
"//ortools/math_opt:callback_cc_proto",
"//ortools/math_opt:infeasible_subsystem_cc_proto",
"//ortools/math_opt:model_cc_proto",
"//ortools/math_opt:model_parameters_cc_proto",
"//ortools/math_opt:model_update_cc_proto",
"//ortools/math_opt:parameters_cc_proto",
"//ortools/math_opt:result_cc_proto",
"//ortools/math_opt:solution_cc_proto",
"//ortools/math_opt:sparse_containers_cc_proto",
"//ortools/math_opt/core:inverted_bounds",
"//ortools/math_opt/core:math_opt_proto_utils",
"//ortools/math_opt/core:solve_interrupter",
"//ortools/math_opt/core:solver_interface",
"//ortools/math_opt/core:sparse_vector_view",
"//ortools/math_opt/validators:callback_validator",
"//ortools/port:proto_utils",
"//ortools/util:logging",
"//ortools/util:strong_integers",
"//ortools/util:time_limit",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/log",
"@com_google_absl//absl/log:check",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/status",
"@com_google_absl//absl/status:statusor",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
"@com_google_absl//absl/types:span",
],
alwayslink = 1,
)
cc_library(
name = "cp_sat_solver",
srcs = [
"cp_sat_solver.cc",
"cp_sat_solver.h",
],
visibility = ["//visibility:public"],
deps = [
"//ortools/base:protoutil",
"//ortools/base:status_macros",
"//ortools/linear_solver:linear_solver_cc_proto",
"//ortools/linear_solver/proto_solver:proto_utils",
"//ortools/linear_solver/proto_solver:sat_proto_solver",
"//ortools/math_opt:callback_cc_proto",
"//ortools/math_opt:infeasible_subsystem_cc_proto",
"//ortools/math_opt:model_cc_proto",
"//ortools/math_opt:model_parameters_cc_proto",
"//ortools/math_opt:model_update_cc_proto",
"//ortools/math_opt:parameters_cc_proto",
"//ortools/math_opt:result_cc_proto",
"//ortools/math_opt:solution_cc_proto",
"//ortools/math_opt:sparse_containers_cc_proto",
"//ortools/math_opt/core:inverted_bounds",
"//ortools/math_opt/core:math_opt_proto_utils",
"//ortools/math_opt/core:solve_interrupter",
"//ortools/math_opt/core:solver_interface",
"//ortools/math_opt/core:sparse_vector_view",
"//ortools/math_opt/io:proto_converter",
"//ortools/math_opt/validators:callback_validator",
"//ortools/port:proto_utils",
"//ortools/sat:sat_parameters_cc_proto",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/log",
"@com_google_absl//absl/log:check",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/status",
"@com_google_absl//absl/status:statusor",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
"@com_google_absl//absl/types:span",
],
alwayslink = 1,
)
cc_library(
name = "message_callback_data",
srcs = ["message_callback_data.cc"],
hdrs = ["message_callback_data.h"],
deps = [
"//ortools/math_opt/core:solver_interface",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/synchronization",
],
)
cc_library(
name = "gscip_solver_callback",
srcs = ["gscip_solver_callback.cc"],
hdrs = ["gscip_solver_callback.h"],
deps = [
"//ortools/base",
"//ortools/linear_solver:scip_helper_macros",
"//ortools/linear_solver:scip_with_glop",
"//ortools/math_opt:callback_cc_proto",
"//ortools/math_opt/core:math_opt_proto_utils",
"//ortools/math_opt/core:solver_interface",
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/container:flat_hash_set",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/status",
"@com_google_absl//absl/status:statusor",
"@com_google_absl//absl/synchronization",
"@com_google_absl//absl/time",
],
)
cc_library(
name = "glpk_solver",
srcs = [
"glpk_solver.cc",
"glpk_solver.h",
],
visibility = ["//visibility:public"],
deps = [
":glpk_cc_proto",
":message_callback_data",
"//ortools/base:cleanup",
"//ortools/base:protoutil",
"//ortools/base:status_macros",
"//ortools/base:sysinfo",
"//ortools/glpk:glpk_env_deleter",
"//ortools/glpk:glpk_formatters",
"//ortools/math_opt:callback_cc_proto",
"//ortools/math_opt:infeasible_subsystem_cc_proto",
"//ortools/math_opt:model_cc_proto",
"//ortools/math_opt:model_parameters_cc_proto",
"//ortools/math_opt:model_update_cc_proto",
"//ortools/math_opt:parameters_cc_proto",
"//ortools/math_opt:result_cc_proto",
"//ortools/math_opt:solution_cc_proto",
"//ortools/math_opt:sparse_containers_cc_proto",
"//ortools/math_opt/core:empty_bounds",
"//ortools/math_opt/core:inverted_bounds",
"//ortools/math_opt/core:math_opt_proto_utils",
"//ortools/math_opt/core:solve_interrupter",
"//ortools/math_opt/core:solver_interface",
"//ortools/math_opt/core:sparse_submatrix",
"//ortools/math_opt/core:sparse_vector_view",
"//ortools/math_opt/solvers/glpk:gap",
"//ortools/math_opt/solvers/glpk:glpk_sparse_vector",
"//ortools/math_opt/solvers/glpk:rays",
"//ortools/math_opt/validators:callback_validator",
"//ortools/port:proto_utils",
"@com_google_absl//absl/container:flat_hash_map",
"@com_google_absl//absl/log",
"@com_google_absl//absl/log:check",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/status",
"@com_google_absl//absl/status:statusor",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
"@glpk",
],
alwayslink = 1,
)
proto_library(
name = "osqp_proto",
srcs = ["osqp.proto"],
)
cc_proto_library(
name = "osqp_cc_proto",
deps = [":osqp_proto"],
)
py_proto_library(
name = "osqp_py_pb2",
deps = [":osqp_proto"],
)
proto_library(
name = "gurobi_proto",
srcs = ["gurobi.proto"],
)
proto_library(
name = "glpk_proto",
srcs = ["glpk.proto"],
)
cc_proto_library(
name = "glpk_cc_proto",
deps = [":glpk_proto"],
)
py_proto_library(
name = "glpk_py_pb2",
deps = [":glpk_proto"],
)
cc_proto_library(
name = "gurobi_cc_proto",
visibility = ["//visibility:public"],
deps = [":gurobi_proto"],
)
py_proto_library(
name = "gurobi_py_pb2",
visibility = ["//visibility:public"],
deps = [":gurobi_proto"],
)
proto_library(
name = "highs_proto",
srcs = ["highs.proto"],
)
cc_proto_library(
name = "highs_cc_proto",
deps = [":highs_proto"],
)
py_proto_library(
name = "highs_py_pb2",
deps = [":highs_proto"],
)