forked from google/or-tools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsystem_deps.cmake
More file actions
132 lines (108 loc) · 3.34 KB
/
system_deps.cmake
File metadata and controls
132 lines (108 loc) · 3.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# 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.
# Check dependencies
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREAD_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads REQUIRED)
# Tell find_package() to try “Config” mode before “Module” mode if no mode was specified.
# This should avoid find_package() to first find our FindXXX.cmake modules if
# distro package already provide a CMake config file...
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE)
# libprotobuf force us to depends on ZLIB::ZLIB target
if(NOT BUILD_ZLIB AND NOT TARGET ZLIB::ZLIB)
find_package(ZLIB REQUIRED)
endif()
if(NOT BUILD_BZip2 AND NOT TARGET BZip2::BZip2)
find_package(BZip2 REQUIRED)
endif()
if(NOT BUILD_absl AND NOT TARGET absl::base)
find_package(absl REQUIRED)
endif()
if(NOT BUILD_Protobuf AND NOT TARGET protobuf::libprotobuf)
find_package(Protobuf REQUIRED)
endif()
if(NOT BUILD_Eigen3 AND NOT TARGET Eigen3::Eigen)
find_package(Eigen3 REQUIRED)
endif()
if(NOT BUILD_re2 AND NOT TARGET re2::re2)
find_package(re2 REQUIRED)
endif()
# Third Party Solvers
if(USE_COINOR)
if(NOT BUILD_CoinUtils AND NOT TARGET Coin::CoinUtils)
find_package(CoinUtils REQUIRED)
endif()
if(NOT BUILD_Osi AND NOT TARGET Coin::Osi)
find_package(Osi REQUIRED)
endif()
if(NOT BUILD_Clp AND NOT TARGET Coin::ClpSolver)
find_package(Clp REQUIRED)
endif()
if(NOT BUILD_Cgl AND NOT TARGET Coin::Cgl)
find_package(Cgl REQUIRED)
endif()
if(NOT BUILD_Cbc AND NOT TARGET Coin::CbcSolver)
find_package(Cbc REQUIRED)
endif()
endif()
if(USE_CPLEX)
if(NOT TARGET CPLEX::CPLEX)
find_package(CPLEX REQUIRED)
endif()
endif()
if(USE_GLPK)
if(NOT BUILD_GLPK AND NOT TARGET GLPK::GLPK)
find_package(GLPK REQUIRED)
endif()
endif()
if(USE_HIGHS)
if(NOT BUILD_HIGHS AND NOT TARGET highs::highs)
find_package(HIGHS REQUIRED)
endif()
endif()
if(USE_PDLP)
if(NOT BUILD_PDLP)
find_package(PDLP REQUIRED)
endif()
endif()
if(USE_SCIP)
if(NOT BUILD_SCIP AND NOT TARGET SCIP::libscip)
find_package(SCIP REQUIRED)
endif()
endif()
# CXX Test
if(BUILD_TESTING)
if(NOT BUILD_googletest AND NOT TARGET GTest::gtest_main)
find_package(GTest REQUIRED)
endif()
if(NOT BUILD_benchmark AND NOT TARGET benchmark::benchmark)
find_package(benchmark REQUIRED)
endif()
if(USE_fuzztest)
if(NOT BUILD_fuzztest AND NOT TARGET fuzztest::fuzztest)
find_package(fuzztest REQUIRED)
endif()
endif()
endif()
# Check language Dependencies
if(BUILD_PYTHON)
if(NOT BUILD_pybind11 AND NOT TARGET pybind11::pybind11_headers)
find_package(pybind11 REQUIRED)
endif()
if(NOT BUILD_pybind11_abseil AND NOT TARGET pybind11_abseil::absl_casters)
find_package(pybind11_abseil REQUIRED)
endif()
if(NOT BUILD_pybind11_protobuf AND NOT TARGET pybind11_native_proto_caster)
find_package(pybind11_protobuf REQUIRED)
endif()
endif()