394 lines
14 KiB
Python
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"],
|
|
)
|