Skip to content

Commit 77a2807

Browse files
committedMar 13, 2025
deps: bump scip to v9.2.1
* use libscip shared library * enable soplex
1 parent 62dca6e commit 77a2807

23 files changed

+541
-82
lines changed
 

‎CMakeLists.txt

+8
Original file line numberDiff line numberDiff line change
@@ -296,11 +296,19 @@ message(STATUS "Build PDLP: ${BUILD_PDLP}")
296296
CMAKE_DEPENDENT_OPTION(USE_SCIP "Use the Scip solver" ON "BUILD_CXX" OFF)
297297
message(STATUS "SCIP support: ${USE_SCIP}")
298298
if(USE_SCIP)
299+
CMAKE_DEPENDENT_OPTION(BUILD_Boost "Build the Boost dependency Library" OFF
300+
"NOT BUILD_DEPS" ON)
301+
CMAKE_DEPENDENT_OPTION(BUILD_soplex "Build the Soplex dependency Library" OFF
302+
"NOT BUILD_DEPS" ON)
299303
CMAKE_DEPENDENT_OPTION(BUILD_SCIP "Build the SCIP dependency Library" OFF
300304
"NOT BUILD_DEPS" ON)
301305
else()
306+
set(BUILD_Boost OFF)
307+
set(BUILD_soplex OFF)
302308
set(BUILD_SCIP OFF)
303309
endif()
310+
message(STATUS "Build Boost (Soplex requirement): ${BUILD_Boost}")
311+
message(STATUS "Build Soplex (SCIP requirement): ${BUILD_soplex}")
304312
message(STATUS "Build SCIP: ${BUILD_SCIP}")
305313

306314
# Optional third party solvers (disabled by default)

‎Dependencies.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Cgl=0.60.9
1010
Cbc=2.10.12
1111
GLPK=5.0
1212
HiGHS=v1.9.0
13-
Scip=v920
13+
Scip=v921
1414
# Python
1515
pybind11=v2.13.6
1616
pybind11_abseil=v202402.0

‎MODULE.bazel

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ bazel_dep(name = "rules_jvm_external", version = "6.6")
3737
bazel_dep(name = "rules_license", version = "1.0.0")
3838
bazel_dep(name = "rules_proto", version = "7.1.0")
3939
bazel_dep(name = "rules_python", version = "1.0.0")
40-
bazel_dep(name = "scip", version = "9.2.0.bcr.3")
40+
bazel_dep(name = "scip", version = "9.2.1")
4141
bazel_dep(name = "swig", version = "4.3.0")
4242
bazel_dep(name = "zlib", version = "1.3.1.bcr.4")
4343

‎cmake/check_deps.cmake

+3-3
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,10 @@ if(USE_PDLP AND BUILD_PDLP)
105105
endif()
106106

107107
if(USE_SCIP)
108-
if(NOT TARGET libscip)
109-
message(FATAL_ERROR "Target libscip not available.")
108+
if(NOT TARGET SCIP::libscip)
109+
message(FATAL_ERROR "Target SCIP::libscip not available.")
110110
endif()
111-
set(SCIP_DEPS libscip)
111+
set(SCIP_DEPS SCIP::libscip)
112112
endif()
113113

114114
# Check optional Dependencies

‎cmake/dependencies/CMakeLists.txt

+67-14
Original file line numberDiff line numberDiff line change
@@ -259,33 +259,86 @@ if(BUILD_HIGHS)
259259
message(CHECK_PASS "fetched")
260260
endif()
261261

262+
# ##############################################################################
263+
# BOOST
264+
# ##############################################################################
265+
if(BUILD_Boost)
266+
message(CHECK_START "Fetching Boost")
267+
list(APPEND CMAKE_MESSAGE_INDENT " ")
268+
FetchContent_Declare(
269+
Boost
270+
URL
271+
https://github.com/boostorg/boost/releases/download/boost-1.87.0/boost-1.87.0-cmake.tar.gz
272+
USES_TERMINAL_DOWNLOAD TRUE
273+
DOWNLOAD_NO_EXTRACT FALSE
274+
PATCH_COMMAND git apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/../../patches/boost-1.87.0.patch"
275+
)
276+
set(BOOST_INCLUDE_LIBRARIES multiprecision serialization)
277+
option(BOOST_SKIP_INSTALL_RULES NO)
278+
set(BOOST_ENABLE_CMAKE ON)
279+
set(BUILD_SHARED_LIBS OFF)
280+
FetchContent_MakeAvailable(Boost)
281+
set(BUILD_SHARED_LIBS ON)
282+
list(POP_BACK CMAKE_MESSAGE_INDENT)
283+
message(CHECK_PASS "fetched")
284+
endif()
285+
286+
# ##############################################################################
287+
# SOPLEX
288+
# ##############################################################################
289+
if(BUILD_soplex)
290+
message(CHECK_START "Fetching SOPLEX")
291+
list(APPEND CMAKE_MESSAGE_INDENT " ")
292+
FetchContent_Declare(
293+
soplex
294+
GIT_REPOSITORY "https://github.com/scipopt/soplex.git"
295+
GIT_TAG "release-713"
296+
GIT_SHALLOW TRUE
297+
PATCH_COMMAND git apply --ignore-whitespace
298+
"${CMAKE_CURRENT_LIST_DIR}/../../patches/soplex-v7.1.3.patch"
299+
)
300+
set(SHARED ON CACHE BOOL "Soplex param" FORCE)
301+
set(ZLIB ON CACHE BOOL "Soplex param" FORCE)
302+
set(GMP OFF CACHE BOOL "Soplex param" FORCE)
303+
set(BOOST ON CACHE BOOL "Soplex param" FORCE)
304+
set(QUADMATH OFF CACHE BOOL "Soplex param" FORCE)
305+
set(MPFR OFF CACHE BOOL "Soplex param" FORCE)
306+
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON CACHE BOOL "Soplex param" FORCE)
307+
set(MT OFF CACHE BOOL "Soplex param" FORCE)
308+
set(PAPILO OFF CACHE BOOL "Soplex param" FORCE)
309+
#set(Boost_INCLUDE_DIR "../boost-src/libs/config/include" CACHE PATH "Soplex param" FORCE)
310+
FetchContent_MakeAvailable(soplex)
311+
list(POP_BACK CMAKE_MESSAGE_INDENT)
312+
message(CHECK_PASS "fetched")
313+
endif()
314+
262315
# ##############################################################################
263316
# SCIP
264317
# ##############################################################################
265318
if(BUILD_SCIP)
266319
message(CHECK_START "Fetching SCIP")
267320
list(APPEND CMAKE_MESSAGE_INDENT " ")
268-
set(SHARED OFF)
269-
set(READLINE OFF)
270-
set(GMP OFF)
271-
set(PAPILO OFF)
272-
set(ZIMPL OFF)
273-
set(IPOPT OFF)
274-
set(AMPL OFF)
275-
276-
set(TPI "tny" CACHE STRING "Scip param")
277-
set(EXPRINT "none" CACHE STRING "Scip param")
278-
set(LPS "none" CACHE STRING "Scip param")
279-
set(SYM "none" CACHE STRING "Scip param")
280321
FetchContent_Declare(
281322
scip
282323
GIT_REPOSITORY "https://github.com/scipopt/scip.git"
283324
GIT_TAG "v921"
284325
GIT_SHALLOW TRUE
285-
PATCH_COMMAND git apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/../../patches/scip-v921.patch"
326+
PATCH_COMMAND git apply --ignore-whitespace
327+
"${CMAKE_CURRENT_LIST_DIR}/../../patches/scip-v921.patch"
286328
)
329+
set(SHARED ON CACHE BOOL "Scip param" FORCE)
330+
set(ZLIB ON CACHE BOOL "Scip param" FORCE)
331+
set(READLINE OFF CACHE BOOL "Scip param" FORCE)
332+
set(GMP OFF CACHE BOOL "Scip param" FORCE)
333+
set(PAPILO OFF CACHE BOOL "Scip param" FORCE)
334+
set(ZIMPL OFF CACHE BOOL "Scip param" FORCE)
335+
set(AMPL OFF CACHE BOOL "Scip param" FORCE)
336+
set(IPOPT OFF CACHE BOOL "Scip param" FORCE)
337+
set(TPI "tny" CACHE STRING "Scip param" FORCE)
338+
set(EXPRINT "none" CACHE STRING "Scip param" FORCE)
339+
set(LPS "spx" CACHE STRING "Scip param" FORCE)
340+
set(SYM "none" CACHE STRING "Scip param" FORCE)
287341
FetchContent_MakeAvailable(scip)
288-
set(LPI_GLOP_SRC ${scip_SOURCE_DIR}/src/lpi/lpi_glop.cpp PARENT_SCOPE)
289342
list(POP_BACK CMAKE_MESSAGE_INDENT)
290343
message(CHECK_PASS "fetched")
291344
endif()

‎cmake/docs/cmake.dot

+24-2
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ digraph CMake {
4141
label = "abseil/abseil-cpp.git";
4242
}
4343

44+
subgraph clusterRe2 {
45+
Re2 [label="re2::re2"];
46+
47+
color=royalblue;
48+
label = "google/re2.git";
49+
}
50+
Absl -> Re2;
51+
4452
subgraph clusterProtobuf {
4553
Protobuf [label="protobuf::libprotobuf", color=royalblue];
4654

@@ -49,6 +57,7 @@ digraph CMake {
4957
}
5058
ZLIB -> Protobuf;
5159
Absl -> Protobuf;
60+
Re2 -> Protobuf;
5261

5362
subgraph clusterCoinOR {
5463
subgraph clusterCoinUtils {
@@ -139,15 +148,27 @@ digraph CMake {
139148
}
140149

141150
subgraph clusterSCIPSolver {
151+
subgraph clusterSoplex {
152+
SPX [label="libsoplex-pic"];
153+
154+
color=royalblue;
155+
label = "scipopt/soplex.git";
156+
}
157+
142158
subgraph clusterSCIP {
143-
SCIP [label="scip::scip"];
159+
SCIP [label="SCIP::libscip"];
144160

145161
color=royalblue;
146162
label = "scipopt/scip.git";
147163
}
164+
165+
SPX -> SCIP;
166+
148167
color=royalblue;
149168
label = "SCIP Solver\n(-DUSE_SCIP=ON)";
150169
}
170+
ZLIB -> SPX;
171+
ZLIB -> SCIP;
151172

152173
SWIG_WIN [label="swigwin\n(Windows)", color=chocolate];
153174

@@ -176,6 +197,7 @@ digraph CMake {
176197
ZLIB -> OR_SRC;
177198
Absl -> OR_SRC;
178199
Protobuf -> OR_SRC;
200+
Re2 -> OR_SRC;
179201
ClpSolver -> OR_SRC;
180202
CbcSolver -> OR_SRC;
181203
GLPK -> OR_SRC;
@@ -228,7 +250,7 @@ digraph CMake {
228250
OR_SRC -> OR_WJAVA [label="swig", color=chocolate];
229251
OR_SRC -> OR_JAVA [label="swig", color=chocolate];
230252
OR_WJAVA -> OR_JAVA;
231-
OR_JAVA -> PKG_JAVA [label="maven (WIP)", style="dotted", color=crimson];
253+
OR_JAVA -> PKG_JAVA [label="maven", color=crimson];
232254

233255
color=crimson;
234256
label = "Java\n(-DBUILD_JAVA=ON)";

‎cmake/docs/deps.dot

+13-1
Original file line numberDiff line numberDiff line change
@@ -135,20 +135,32 @@ digraph CMakeDeps {
135135
}
136136

137137
subgraph clusterSCIPSolver {
138+
subgraph clusterSoplex {
139+
SPX [label="libsoplex"];
140+
141+
color=royalblue;
142+
label = "scipopt/soplex.git";
143+
}
138144
subgraph clusterSCIP {
139-
SCIP [label="scip::scip"];
145+
SCIP [label="SCIP::libscip"];
140146

141147
color=royalblue;
142148
label = "scipopt/scip.git";
143149
}
150+
SPX -> SCIP;
151+
144152
color=royalblue;
145153
label = "-DUSE_SCIP=ON AND -DBUILD_SCIP=ON";
146154
}
147155

148156
// inter deps
149157
ZLIB -> Protobuf;
150158
ZLIB -> Cbc;
159+
ZLIB -> SPX;
160+
ZLIB -> SCIP;
161+
Absl -> Re2;
151162
Absl -> Protobuf;
163+
Re2 -> Protobuf;
152164
}
153165
@enddot
154166
# vim tw:0

‎cmake/dotnet.cmake

+3
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,9 @@ set(need_cbc_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_Cbc}>>")
395395
set(need_unix_highs_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_HIGHS}>>")
396396
set(need_windows_highs_lib "$<AND:${is_windows},$<BOOL:${BUILD_HIGHS}>>")
397397

398+
set(need_unix_scip_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_SCIP}>>")
399+
set(need_windows_scip_lib "$<AND:${is_windows},$<BOOL:${BUILD_SCIP}>>")
400+
398401
set(is_ortools_shared "$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>")
399402
set(need_unix_ortools_lib "$<AND:${is_not_windows},${is_ortools_shared}>")
400403
set(need_windows_ortools_lib "$<AND:${is_windows},${is_ortools_shared}>")

‎cmake/java.cmake

+11-2
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,9 @@ set(need_unix_cbc_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_Cbc}>>")
298298
set(need_unix_highs_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_HIGHS}>>")
299299
set(need_windows_highs_lib "$<AND:${is_windows},$<BOOL:${BUILD_HIGHS}>>")
300300

301+
set(need_unix_scip_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_SCIP}>>")
302+
set(need_windows_scip_lib "$<AND:${is_windows},$<BOOL:${BUILD_SCIP}>>")
303+
301304
set(is_ortools_shared "$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>")
302305
set(need_unix_ortools_lib "$<AND:${is_not_windows},${is_ortools_shared}>")
303306
set(need_windows_ortools_lib "$<AND:${is_windows},${is_ortools_shared}>")
@@ -441,8 +444,14 @@ add_custom_command(
441444

442445
COMMAND ${CMAKE_COMMAND} -E
443446
$<IF:$<BOOL:${BUILD_HIGHS}>,copy,true>
444-
$<${need_unix_highs_lib}:$<TARGET_SONAME_FILE:highs>>
445-
$<${need_windows_highs_lib}:$<TARGET_FILE:highs>>
447+
$<${need_unix_highs_lib}:$<TARGET_SONAME_FILE:highs::highs>>
448+
$<${need_windows_highs_lib}:$<TARGET_FILE:highs::highs>>
449+
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
450+
451+
COMMAND ${CMAKE_COMMAND} -E
452+
$<IF:$<BOOL:${BUILD_SCIP}>,copy,true>
453+
$<${need_unix_scip_lib}:$<TARGET_SONAME_FILE:SCIP::libscip>>
454+
$<${need_windows_scip_lib}:$<TARGET_FILE:SCIP::libscip>>
446455
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
447456

448457
COMMAND ${CMAKE_COMMAND} -E

‎cmake/ortoolsConfig.cmake.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ if(@USE_PDLP@)
6666
endif()
6767

6868
if(@USE_SCIP@)
69-
if(NOT TARGET libscip)
69+
if(NOT TARGET SCIP::libscip)
7070
find_dependency(SCIP REQUIRED)
7171
endif()
7272
endif()

‎cmake/python.cmake

+11-2
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,9 @@ set(need_unix_cbc_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_Cbc}>>")
454454
set(need_unix_highs_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_HIGHS}>>")
455455
set(need_windows_highs_lib "$<AND:${is_windows},$<BOOL:${BUILD_HIGHS}>>")
456456

457+
set(need_unix_scip_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_SCIP}>>")
458+
set(need_windows_scip_lib "$<AND:${is_windows},$<BOOL:${BUILD_SCIP}>>")
459+
457460
set(is_ortools_shared "$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>")
458461
set(need_unix_ortools_lib "$<AND:${is_not_windows},${is_ortools_shared}>")
459462
set(need_windows_ortools_lib "$<AND:${is_windows},${is_ortools_shared}>")
@@ -597,8 +600,14 @@ add_custom_command(
597600

598601
COMMAND ${CMAKE_COMMAND} -E
599602
$<IF:$<BOOL:${BUILD_HIGHS}>,copy,true>
600-
$<${need_unix_highs_lib}:$<TARGET_SONAME_FILE:highs>>
601-
$<${need_windows_highs_lib}:$<TARGET_FILE:highs>>
603+
$<${need_unix_highs_lib}:$<TARGET_SONAME_FILE:highs::highs>>
604+
$<${need_windows_highs_lib}:$<TARGET_FILE:highs::highs>>
605+
${PYTHON_PROJECT}/.libs
606+
607+
COMMAND ${CMAKE_COMMAND} -E
608+
$<IF:$<BOOL:${BUILD_SCIP}>,copy,true>
609+
$<${need_unix_scip_lib}:$<TARGET_SONAME_FILE:SCIP::libscip>>
610+
$<${need_windows_scip_lib}:$<TARGET_FILE:SCIP::libscip>>
602611
${PYTHON_PROJECT}/.libs
603612

604613
COMMAND ${CMAKE_COMMAND} -E

‎ortools/dotnet/Google.OrTools.runtime.csproj.in

+5-2
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,11 @@
129129
$<@need_cgl_lib@:;$<TARGET_SONAME_FILE:Coin::Cgl>>
130130
$<@need_cbc_lib@:;$<TARGET_SONAME_FILE:Coin::Cbc>;$<TARGET_SONAME_FILE:Coin::OsiCbc>;$<TARGET_SONAME_FILE:Coin::CbcSolver>>
131131

132-
$<@need_unix_highs_lib@:;$<TARGET_SONAME_FILE:highs>>
133-
$<@need_windows_highs_lib@:;$<TARGET_FILE:highs>>
132+
$<@need_unix_highs_lib@:;$<TARGET_SONAME_FILE:highs::highs>>
133+
$<@need_windows_highs_lib@:;$<TARGET_FILE:highs::highs>>
134+
135+
$<@need_unix_scip_lib@:;$<TARGET_SONAME_FILE:SCIP::libscip>>
136+
$<@need_windows_scip_lib@:;$<TARGET_FILE:SCIP::libscip>>
134137

135138
$<@need_unix_ortools_lib@:;$<TARGET_SONAME_FILE:ortools>>
136139
$<@need_windows_ortools_lib@:;$<TARGET_FILE:ortools>>

‎ortools/gscip/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,6 @@ target_link_libraries(${NAME} PRIVATE
3333
absl::strings
3434
absl::str_format
3535
protobuf::libprotobuf
36-
$<$<BOOL:${USE_SCIP}>:libscip>
36+
SCIP::libscip
3737
${PROJECT_NAMESPACE}::ortools_proto)
3838
#add_library(${PROJECT_NAMESPACE}::gscip ALIAS ${NAME})

‎ortools/java/com/google/ortools/Loader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public static synchronized void loadNativeLibraries() {
143143
Path tempPath = unpackNativeResources(resourceURI);
144144
// libraries order does matter !
145145
List<String> dlls = Arrays.asList("zlib1", "abseil_dll", "re2", "utf8_validity",
146-
"libprotobuf", "highs", "ortools", "jniortools");
146+
"libprotobuf", "highs", "libscip", "ortools", "jniortools");
147147
for (String dll : dlls) {
148148
try {
149149
// System.out.println("System.load(" + dll + ")");

‎ortools/linear_solver/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ target_link_libraries(${NAME} PRIVATE
4848
$<$<BOOL:${USE_GLPK}>:GLPK::GLPK>
4949
$<$<BOOL:${USE_HIGHS}>:highs::highs>
5050
$<$<BOOL:${USE_PDLP}>:Eigen3::Eigen>
51-
$<$<BOOL:${USE_SCIP}>:libscip>
51+
$<$<BOOL:${USE_SCIP}>:SCIP::libscip>
5252
${PROJECT_NAMESPACE}::ortools_proto)
5353
#add_library(${PROJECT_NAMESPACE}::linear_solver ALIAS ${NAME})
5454

‎ortools/linear_solver/proto_solver/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ target_link_libraries(${NAME} PRIVATE
4646
absl::status
4747
absl::str_format
4848
$<$<BOOL:${USE_PDLP}>:Eigen3::Eigen>
49-
$<$<BOOL:${USE_SCIP}>:libscip>
49+
$<$<BOOL:${USE_SCIP}>:SCIP::libscip>
5050
$<$<BOOL:${USE_HIGHS}>:highs::highs>
5151
${PROJECT_NAMESPACE}::ortools_proto)
5252
#add_library(${PROJECT_NAMESPACE}::linear_solver_proto_solver ALIAS ${NAME})

‎ortools/linear_solver/wrappers/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ target_include_directories(${NAME} PRIVATE
2525
${PROJECT_BINARY_DIR})
2626
target_link_libraries(${NAME} PRIVATE
2727
absl::status
28-
$<$<BOOL:${USE_SCIP}>:libscip>
28+
$<$<BOOL:${USE_SCIP}>:SCIP::libscip>
2929
${PROJECT_NAMESPACE}::ortools_proto)
3030
#add_library(${PROJECT_NAMESPACE}::linear_solver_wrappers ALIAS ${NAME})

‎ortools/math_opt/io/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ target_include_directories(${NAME} PUBLIC
3030
target_link_libraries(${NAME} PRIVATE
3131
${PROJECT_NAMESPACE}::math_opt_proto
3232
absl::strings
33-
$<$<BOOL:${USE_SCIP}>:libscip>
33+
$<$<BOOL:${USE_SCIP}>:SCIP::libscip>
3434
)

‎ortools/python/__init__.py.in

+4-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ def _load_ortools_libs():
5555
except:
5656
pass
5757
else:
58-
for dll in ["zlib1.dll", "abseil_dll.dll", "utf8_validity.dll", "re2.dll", "libprotobuf.dll", "highs.dll", "ortools.dll"]:
58+
for dll in ["zlib1.dll",
59+
"abseil_dll.dll", "utf8_validity.dll", "re2.dll", "libprotobuf.dll",
60+
"highs.dll", "libscip.dll",
61+
"ortools.dll"]:
5962
dll_path = os.path.join(basedir, ".libs", dll)
6063
if os.path.exists(dll_path):
6164
print(f"load {dll_path}...")

‎patches/BUILD.bazel

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ exports_files([
1818
"pybind11_abseil.patch",
1919
"pybind11_protobuf.patch",
2020
"pybind11.patch",
21-
"scip-v920.patch",
21+
"scip-v921.patch",
2222
])

‎patches/boost-1.87.0.patch

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
diff -ru a/tools/cmake/include/BoostInstall.cmake b/tools/cmake/include/BoostInstall.cmake
2+
--- a/tools/cmake/include/BoostInstall.cmake 2024-12-12 00:43:08.000000000 +0100
3+
+++ b/tools/cmake/include/BoostInstall.cmake 2025-03-03 13:11:00.310140710 +0100
4+
@@ -306,7 +306,7 @@
5+
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
6+
)
7+
8+
- export(TARGETS ${LIB} NAMESPACE Boost:: FILE export/${LIB}-targets.cmake)
9+
+ #export(TARGETS ${LIB} NAMESPACE Boost:: FILE export/${LIB}-targets.cmake)
10+
11+
if(MSVC)
12+
if(TYPE STREQUAL "SHARED_LIBRARY")

‎patches/scip-v921.patch

+145-45
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,145 @@
1-
diff --git a/src/lpi/lpi_glop.cpp b/src/lpi/lpi_glop.cpp
2-
index a90120188a..2c068e5e30 100644
3-
--- a/src/lpi/lpi_glop.cpp
4-
+++ b/src/lpi/lpi_glop.cpp
5-
@@ -51,7 +51,6 @@
6-
#include "ortools/util/time_limit.h"
7-
8-
#include "ortools/base/logging.h"
9-
-#include "ortools/base/vlog_is_on.h"
10-
11-
#include "lpi/lpi.h"
12-
#include "scip/pub_message.h"
13-
@@ -2942,12 +2941,12 @@ SCIP_RETCODE SCIPlpiSetIntpar(
14-
SCIPdebugMessage("SCIPlpiSetIntpar: SCIP_LPPAR_LPINFO -> %d.\n", ival);
15-
if ( ival == 0 )
16-
{
17-
- (void) google::SetVLOGLevel("*", google::GLOG_INFO);
18-
+ absl::SetStderrThreshold(absl::LogSeverityAtLeast::kInfo);
19-
lpi->lp_info = false;
20-
}
21-
else
22-
{
23-
- (void) google::SetVLOGLevel("*", google::GLOG_ERROR);
24-
+ absl::SetStderrThreshold(absl::LogSeverityAtLeast::kError);
25-
lpi->lp_info = true;
26-
}
27-
break;
28-
@@ -3190,7 +3189,7 @@ SCIP_RETCODE SCIPlpiReadLP(
29-
30-
const std::string filespec(fname);
31-
MPModelProto proto;
32-
- if ( ! ReadFileToProto(filespec, &proto) )
33-
+ if ( ! ReadFileToProto(filespec, &proto).ok() )
34-
{
35-
SCIPerrorMessage("Could not read <%s>\n", fname);
36-
return SCIP_READERROR;
37-
@@ -3214,7 +3213,7 @@ SCIP_RETCODE SCIPlpiWriteLP(
38-
MPModelProto proto;
39-
LinearProgramToMPModelProto(*lpi->linear_program, &proto);
40-
const std::string filespec(fname);
41-
- if ( ! WriteProtoToFile(filespec, proto, operations_research::ProtoWriteFormat::kProtoText, true) )
42-
+ if ( ! WriteProtoToFile(filespec, proto, operations_research::ProtoWriteFormat::kProtoText, true).ok() )
43-
{
44-
SCIPerrorMessage("Could not write <%s>\n", fname);
45-
return SCIP_READERROR;
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index 8492dc75..4c12a9bf 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -38,9 +38,11 @@ set(CPACK_PACKAGE_VENDOR "Zuse Institute Berlin")
6+
set(CPACK_PACKAGE_CONTACT "http://scipopt.org")
7+
include(CPack)
8+
9+
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
10+
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
11+
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
12+
+if(CMAKE_PROJECT_NAME EQUAL "SCIP")
13+
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
14+
+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
15+
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
16+
+endif()
17+
18+
if(SCIPOptSuite_BINARY_DIR)
19+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SCIPOptSuite_BINARY_DIR}/bin)
20+
@@ -412,22 +414,11 @@ endif()
21+
#search the selected LP solver library
22+
message(STATUS "Finding Solver \"${LPS}\"")
23+
if(LPS STREQUAL "spx")
24+
- message(STATUS "Finding Soplex")
25+
- find_package(SOPLEX CONFIG HINTS ${SOPLEX_DIR})
26+
- if(NOT SOPLEX_FOUND)
27+
- # Utilities to automatically download missing dependencies
28+
- include(cmake/Dependencies.cmake)
29+
- find_or_download_package(
30+
- NAME SOPLEX
31+
- VERSION 7.0.1
32+
- URL https://github.com/scipopt/soplex/archive/refs/tags/release-701.tar.gz
33+
- URL_HASH SHA256=80cce994dcbe45fd52b60e31a3aeb5d2c60a7ddbaae495e0ce6bf58481675696
34+
- COMPONENTS soplex)
35+
- find_package(SOPLEX REQUIRED CONFIG HINTS _deps/local)
36+
- endif()
37+
- if(NOT SOPLEX_FOUND)
38+
+ message(STATUS "Finding Soplex...")
39+
+ if(NOT TARGET libsoplex-pic OR NOT TARGET libsoplex)
40+
message(FATAL_ERROR "Requested LP solver SoPlex not found.")
41+
endif()
42+
+ set(SOPLEX_FOUND TRUE)
43+
if (DEFINED SOPLEX_WITH_PAPILO)
44+
message(STATUS "SOPLEX links PAPILO")
45+
if((NOT SCIP_WITH_PAPILO)) # TODO not sure how to handle AUTOBUILD
46+
@@ -502,9 +493,9 @@ if(SOPLEX_FOUND)
47+
message(STATUS "Finding SOPLEX - found")
48+
# SoPlex headers can be directly included
49+
include_directories(${SOPLEX_INCLUDE_DIRS})
50+
- set(LPS_LIBRARIES ${SOPLEX_LIBRARIES})
51+
+ set(LPS_LIBRARIES libsoplex)
52+
if(SHARED)
53+
- set(LPS_PIC_LIBRARIES ${SOPLEX_PIC_LIBRARIES})
54+
+ set(LPS_PIC_LIBRARIES libsoplex-pic)
55+
else()
56+
set(LPS_PIC_LIBRARIES ${LPS_LIBRARIES})
57+
endif()
58+
@@ -514,7 +505,7 @@ if(SOPLEX_FOUND)
59+
set(lpi lpi/lpi_spx2.cpp)
60+
endif()
61+
else()
62+
- message(STATUS "Support SOPLEX: OFF")
63+
+ message(FATAL_ERROR "SOPLEX not found !")
64+
endif()
65+
66+
if(CLP_FOUND)
67+
diff --git a/scip-config.cmake.in b/scip-config.cmake.in
68+
index 559552f9..682ac40a 100644
69+
--- a/scip-config.cmake.in
70+
+++ b/scip-config.cmake.in
71+
@@ -1,17 +1,16 @@
72+
if(NOT TARGET libscip)
73+
- include("${CMAKE_CURRENT_LIST_DIR}/scip-targets.cmake")
74+
-endif()
75+
+ include(CMakeFindDependencyMacro)
76+
+ if(@ZIMPL_NEEDED@)
77+
+ find_dependency(ZIMPL REQUIRED NO_MODULE)
78+
+ endif()
79+
+ if(@SOPLEX_NEEDED@)
80+
+ find_dependency(SOPLEX REQUIRED NO_MODULE)
81+
+ endif()
82+
83+
-if(@ZIMPL_NEEDED@)
84+
- set(ZIMPL_DIR "@CONF_ZIMPL_DIR@")
85+
- find_package(ZIMPL QUIET CONFIG)
86+
-endif()
87+
-
88+
-if(@SOPLEX_NEEDED@)
89+
- set(SOPLEX_DIR "@CONF_SOPLEX_DIR@")
90+
- find_package(SOPLEX QUIET CONFIG)
91+
+ include("${CMAKE_CURRENT_LIST_DIR}/scip-targets.cmake")
92+
endif()
93+
94+
+# Legacy
95+
set(SCIP_LIBRARIES libscip)
96+
set(SCIP_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@")
97+
set(SCIP_FOUND TRUE)
98+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
99+
index e6fda2d5..2d04b845 100644
100+
--- a/src/CMakeLists.txt
101+
+++ b/src/CMakeLists.txt
102+
@@ -1149,17 +1149,8 @@ install(TARGETS scip libscip EXPORT scip-targets
103+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
104+
105+
# Add all targets to the build-tree export set
106+
-export(TARGETS scip libscip
107+
- FILE "${PROJECT_BINARY_DIR}/scip-targets.cmake")
108+
-
109+
-# make soplex and zimpl dir absolute for the config file
110+
-if(SOPLEX_NEEDED)
111+
- get_filename_component(CONF_SOPLEX_DIR ${SOPLEX_DIR} REALPATH BASE_DIR ${CMAKE_SOURCE_DIR})
112+
-endif()
113+
-
114+
-if(ZIMPL_NEEDED)
115+
- get_filename_component(CONF_ZIMPL_DIR ${ZIMPL_DIR} REALPATH BASE_DIR ${CMAKE_SOURCE_DIR})
116+
-endif()
117+
+#export(TARGETS scip libscip
118+
+# FILE "${PROJECT_BINARY_DIR}/scip-targets.cmake")
119+
120+
# configure the config file for the build tree
121+
set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src" "${PROJECT_BINARY_DIR}")
122+
@@ -1175,18 +1166,16 @@ ${PROJECT_BINARY_DIR}/scip-config-version.cmake
123+
124+
#configure the config file for the install
125+
set(CONF_INCLUDE_DIRS "\${CMAKE_CURRENT_LIST_DIR}/../../../include")
126+
-if(SOPLEX_NEEDED)
127+
- set(CONF_SOPLEX_DIR "\${CMAKE_CURRENT_LIST_DIR}/../soplex")
128+
-endif()
129+
-if(ZIMPL_NEEDED)
130+
- set(CONF_ZIMPL_DIR "\${CMAKE_CURRENT_LIST_DIR}/../zimpl")
131+
-endif()
132+
configure_file(${PROJECT_SOURCE_DIR}/scip-config.cmake.in
133+
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/scip-config.cmake" @ONLY)
134+
135+
# install the targets of the scip export group and the config file so that other projects
136+
# can link easily against scip
137+
-install(EXPORT scip-targets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scip)
138+
+install(EXPORT scip-targets
139+
+ NAMESPACE SCIP::
140+
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scip
141+
+ COMPONENT Devel
142+
+)
143+
install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/scip-config.cmake"
144+
${PROJECT_BINARY_DIR}/scip-config-version.cmake
145+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scip)

‎patches/soplex-v7.1.3.patch

+225
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index 0b21f5a..ddf1536 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -27,6 +27,10 @@ set(CPACK_PACKAGE_VERSION_PATCH "${SOPLEX_VERSION_PATCH}")
6+
set(CPACK_PACKAGE_VENDOR "Zuse Institute Berlin")
7+
include(CPack)
8+
9+
+# Disable CTest targets
10+
+set_property(GLOBAL PROPERTY CTEST_TARGETS_ADDED 1)
11+
+include(CTest)
12+
+
13+
option(ZLIB "Use ZLIB" ON)
14+
option(GMP "Use GMP" ON)
15+
option(EMSCRIPTEN_HTML "Emscripten HTML output" OFF)
16+
@@ -43,11 +47,17 @@ option(SANITIZE_THREAD "should the thread sanitizer be enabled in debug mode if
17+
option(COVERAGE "enable coverage support" OFF)
18+
option(PAPILO "should papilo library be linked" ON)
19+
20+
+option(SOPLEX_EXAMPLE "Build example" OFF)
21+
+option(SOPLEX_SOPLEX "Build soplex program" OFF)
22+
+option(SOPLEX_EXPORT "Enable to use soplex from the current project's build tree, without installation." OFF)
23+
+
24+
SET(COVERAGE_CTEST_ARGS "" CACHE STRING "additional ctest arguments for coverage")
25+
26+
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
27+
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
28+
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
29+
+if(CMAKE_PROJECT_NAME EQUAL "SOPLEX")
30+
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
31+
+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
32+
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
33+
+endif()
34+
35+
# for colorized output
36+
if(NOT WIN32)
37+
@@ -69,6 +79,8 @@ set(CMAKE_MACOSX_RPATH ON)
38+
39+
# use C++14 standard
40+
set(CMAKE_CXX_STANDARD 14)
41+
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
42+
+set(CMAKE_CXX_EXTENSIONS OFF)
43+
44+
# set function visibility default to hidden
45+
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
46+
@@ -123,12 +135,11 @@ if(COVERAGE)
47+
endif()
48+
49+
if(ZLIB)
50+
- find_package(ZLIB)
51+
-endif()
52+
-if(ZLIB_FOUND)
53+
- set(SOPLEX_WITH_ZLIB on)
54+
- set(libs ${libs} ${ZLIB_LIBRARIES})
55+
- include_directories(${ZLIB_INCLUDE_DIRS})
56+
+ if(NOT TARGET ZLIB::ZLIB)
57+
+ find_package(ZLIB REQUIRED)
58+
+ endif()
59+
+ set(SOPLEX_WITH_ZLIB on)
60+
+ set(libs ${libs} ZLIB::ZLIB)
61+
endif()
62+
63+
if(GMP)
64+
@@ -170,39 +181,24 @@ else()
65+
set(SOPLEX_WITH_PAPILO off)
66+
endif()
67+
68+
-set(BOOST_MINIMUM_VERSION 1.65.0)
69+
+set(BOOST_MINIMUM_VERSION 1.65.0) # PaPILO requires at least Boost 1.65 (on mac 1.72)
70+
if(BOOST)
71+
- find_package(Boost ${BOOST_MINIMUM_VERSION}) # PaPILO requires at least Boost 1.65 (on mac 1.72)
72+
- if(Boost_FOUND)
73+
- set(SOPLEX_WITH_BOOST on)
74+
- include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
75+
- if(NOT Boost_VERSION_MACRO)
76+
- set(Boost_VERSION_MACRO ${Boost_VERSION})
77+
- endif()
78+
- if(${Boost_VERSION_MACRO} LESS "107000")
79+
- if(NOT SOPLEX_WITH_GMP)
80+
- message(SEND_ERROR "If no GMP is linked, then the minimal Boost verion is 1.70. \
81+
- Found Boost version is ${Boost_VERSION_STRING}. Either provide newer Boost, link GMP, or disable Boost by setting BOOST=off.")
82+
- else()
83+
- message(WARNING "The multiprecision and quadprecision features are disabled with Boost versions older than 1.70. \
84+
- Found Boost version is ${Boost_VERSION_STRING}.")
85+
- endif()
86+
- endif()
87+
- if(MPFR) # MPFR is used within boost multiprecision, so using it without Boost does not make sense
88+
- find_package(MPFR)
89+
- endif()
90+
- if(MPFR_FOUND)
91+
- message(STATUS "SoPlex with Boost MPFR libraries")
92+
- set(SOPLEX_WITH_MPFR on)
93+
- include_directories(${MPFR_INCLUDE_DIRS})
94+
- set(libs ${libs} ${MPFR_LIBRARIES})
95+
- else()
96+
- message(STATUS "SoPlex with Boost CPP multiprecision libraries")
97+
- set(SOPLEX_WITH_CPPMPF on)
98+
- endif()
99+
- else()
100+
- set(BOOST off)
101+
- endif()
102+
+ if(NOT TARGET Boost::multiprecision OR NOT TARGET Boost::serialization)
103+
+ message(FATAL_ERROR "Boost::multiprecision or Boost::serialization not available!!!")
104+
+ find_package(Boost ${BOOST_MINIMUM_VERSION} REQUIRED)
105+
+ endif()
106+
+ set(SOPLEX_WITH_BOOST on)
107+
+ set(libs ${libs} Boost::multiprecision Boost::serialization)
108+
+ if(MPFR) # MPFR is used within boost multiprecision, so using it without Boost does not make sense
109+
+ find_package(MPFR REQUIRED)
110+
+ message(STATUS "SoPlex with Boost MPFR libraries")
111+
+ set(SOPLEX_WITH_MPFR on)
112+
+ include_directories(${MPFR_INCLUDE_DIRS})
113+
+ set(libs ${libs} ${MPFR_LIBRARIES})
114+
+ else()
115+
+ message(STATUS "SoPlex with Boost CPP multiprecision libraries")
116+
+ set(SOPLEX_WITH_CPPMPF on)
117+
+ endif()
118+
endif()
119+
120+
# disable fused floating point contraction to enhance reproducibility across compilers and architectures
121+
@@ -247,7 +243,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/soplex/config.h.in ${PROJECT_BINA
122+
configure_file(${PROJECT_SOURCE_DIR}/soplex-config.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/soplex-config.cmake" @ONLY)
123+
124+
add_subdirectory(src)
125+
-add_subdirectory(tests/c_interface)
126+
-add_subdirectory(check)
127+
-
128+
-enable_testing()
129+
+if(BUILD_TESTING)
130+
+ add_subdirectory(tests/c_interface)
131+
+ add_subdirectory(check)
132+
+endif()
133+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
134+
index 84ec5a5..6f5d4ef 100644
135+
--- a/src/CMakeLists.txt
136+
+++ b/src/CMakeLists.txt
137+
@@ -193,24 +193,28 @@ target_link_libraries(libsoplexshared libsoplex ${libs})
138+
set_target_properties(libsoplexshared PROPERTIES CXX_VISIBILITY_PRESET default)
139+
140+
# create soplex binary using library without pic
141+
-add_executable(soplex soplexmain.cpp)
142+
-target_link_libraries(soplex LINK_PUBLIC libsoplex ${Boost_LIBRARIES})
143+
+if(SOPLEX_SOPLEX)
144+
+ add_executable(soplex EXCLUDE_FROM_ALL soplexmain.cpp)
145+
+ target_link_libraries(soplex PRIVATE libsoplex ${Boost_LIBRARIES})
146+
147+
-if(EMSCRIPTEN AND EMSCRIPTEN_HTML)
148+
+ # set the install rpath to the installed destination
149+
+ set_target_properties(soplex PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
150+
+
151+
+ if(EMSCRIPTEN AND EMSCRIPTEN_HTML)
152+
set_target_properties(soplex PROPERTIES LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/soplex_webdemo_shell.html)
153+
set(CMAKE_EXECUTABLE_SUFFIX ".html")
154+
-endif()
155+
+ endif()
156+
157+
-if(CMAKE_BUILD_TYPE EQUAL "Debug")
158+
- find_package(Sanitizers)
159+
- add_sanitizers(soplex)
160+
+ if(CMAKE_BUILD_TYPE EQUAL "Debug")
161+
+ find_package(Sanitizers)
162+
+ add_sanitizers(soplex)
163+
+ endif()
164+
endif()
165+
166+
-add_executable(example EXCLUDE_FROM_ALL example.cpp)
167+
-target_link_libraries(example libsoplex)
168+
-
169+
-# set the install rpath to the installed destination
170+
-set_target_properties(soplex PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
171+
+if(SOPLEX_EXAMPLE)
172+
+ add_executable(example example.cpp)
173+
+ target_link_libraries(example libsoplex)
174+
+endif()
175+
176+
# install the header files of soplex
177+
install(FILES ${headers} ${PROJECT_BINARY_DIR}/soplex/config.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/soplex)
178+
@@ -237,15 +241,28 @@ install(FILES
179+
DESTINATION include/soplex/external/zstr)
180+
181+
# install the binary and the library to appropriate lcoations and add them to an export group
182+
-install(TARGETS soplex libsoplex libsoplex-pic libsoplexshared EXPORT soplex-targets
183+
+if(SOPLEX_SOPLEX)
184+
+ install(TARGETS soplex
185+
+ EXPORT soplex-targets
186+
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
187+
+endif()
188+
+
189+
+install(TARGETS libsoplex libsoplex-pic libsoplexshared
190+
+ EXPORT soplex-targets
191+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
192+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
193+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
194+
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
195+
196+
+install(EXPORT soplex-targets
197+
+ FILE soplex-targets.cmake
198+
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/soplex)
199+
+
200+
# Add library targets to the build-tree export set
201+
-export(TARGETS libsoplex libsoplex-pic libsoplexshared
202+
- FILE "${CMAKE_BINARY_DIR}/soplex-targets.cmake")
203+
+if(SOPLEX_EXPORT)
204+
+ export(TARGETS libsoplex libsoplex-pic libsoplexshared
205+
+ FILE "${CMAKE_BINARY_DIR}/soplex-targets.cmake")
206+
+endif()
207+
208+
#configure the config file for the build tree
209+
set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src" "${PROJECT_BINARY_DIR}")
210+
@@ -259,7 +276,6 @@ ${CMAKE_BINARY_DIR}/soplex-config-version.cmake
211+
COMPATIBILITY SameMajorVersion
212+
)
213+
214+
-
215+
#configure the config file for the install
216+
set(CONF_INCLUDE_DIRS "\${CMAKE_CURRENT_LIST_DIR}/../../../include")
217+
configure_file(${PROJECT_SOURCE_DIR}/soplex-config.cmake.in
218+
@@ -267,7 +283,6 @@ configure_file(${PROJECT_SOURCE_DIR}/soplex-config.cmake.in
219+
220+
# install the targets of the soplex export group and the config file so that other projects
221+
# can link easily against soplex
222+
-install(EXPORT soplex-targets FILE soplex-targets.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/soplex)
223+
install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/soplex-config.cmake"
224+
${CMAKE_BINARY_DIR}/soplex-config-version.cmake
225+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/soplex)

0 commit comments

Comments
 (0)
Please sign in to comment.