deps: bump scip to v9.2.1

* use libscip shared library
* enable soplex
This commit is contained in:
Corentin Le Molgat
2025-03-13 15:44:39 +01:00
parent 62dca6e486
commit 77a28070b9
23 changed files with 538 additions and 79 deletions

View File

@@ -105,10 +105,10 @@ if(USE_PDLP AND BUILD_PDLP)
endif()
if(USE_SCIP)
if(NOT TARGET libscip)
message(FATAL_ERROR "Target libscip not available.")
if(NOT TARGET SCIP::libscip)
message(FATAL_ERROR "Target SCIP::libscip not available.")
endif()
set(SCIP_DEPS libscip)
set(SCIP_DEPS SCIP::libscip)
endif()
# Check optional Dependencies

View File

@@ -259,33 +259,86 @@ if(BUILD_HIGHS)
message(CHECK_PASS "fetched")
endif()
# ##############################################################################
# BOOST
# ##############################################################################
if(BUILD_Boost)
message(CHECK_START "Fetching Boost")
list(APPEND CMAKE_MESSAGE_INDENT " ")
FetchContent_Declare(
Boost
URL
https://github.com/boostorg/boost/releases/download/boost-1.87.0/boost-1.87.0-cmake.tar.gz
USES_TERMINAL_DOWNLOAD TRUE
DOWNLOAD_NO_EXTRACT FALSE
PATCH_COMMAND git apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/../../patches/boost-1.87.0.patch"
)
set(BOOST_INCLUDE_LIBRARIES multiprecision serialization)
option(BOOST_SKIP_INSTALL_RULES NO)
set(BOOST_ENABLE_CMAKE ON)
set(BUILD_SHARED_LIBS OFF)
FetchContent_MakeAvailable(Boost)
set(BUILD_SHARED_LIBS ON)
list(POP_BACK CMAKE_MESSAGE_INDENT)
message(CHECK_PASS "fetched")
endif()
# ##############################################################################
# SOPLEX
# ##############################################################################
if(BUILD_soplex)
message(CHECK_START "Fetching SOPLEX")
list(APPEND CMAKE_MESSAGE_INDENT " ")
FetchContent_Declare(
soplex
GIT_REPOSITORY "https://github.com/scipopt/soplex.git"
GIT_TAG "release-713"
GIT_SHALLOW TRUE
PATCH_COMMAND git apply --ignore-whitespace
"${CMAKE_CURRENT_LIST_DIR}/../../patches/soplex-v7.1.3.patch"
)
set(SHARED ON CACHE BOOL "Soplex param" FORCE)
set(ZLIB ON CACHE BOOL "Soplex param" FORCE)
set(GMP OFF CACHE BOOL "Soplex param" FORCE)
set(BOOST ON CACHE BOOL "Soplex param" FORCE)
set(QUADMATH OFF CACHE BOOL "Soplex param" FORCE)
set(MPFR OFF CACHE BOOL "Soplex param" FORCE)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON CACHE BOOL "Soplex param" FORCE)
set(MT OFF CACHE BOOL "Soplex param" FORCE)
set(PAPILO OFF CACHE BOOL "Soplex param" FORCE)
#set(Boost_INCLUDE_DIR "../boost-src/libs/config/include" CACHE PATH "Soplex param" FORCE)
FetchContent_MakeAvailable(soplex)
list(POP_BACK CMAKE_MESSAGE_INDENT)
message(CHECK_PASS "fetched")
endif()
# ##############################################################################
# SCIP
# ##############################################################################
if(BUILD_SCIP)
message(CHECK_START "Fetching SCIP")
list(APPEND CMAKE_MESSAGE_INDENT " ")
set(SHARED OFF)
set(READLINE OFF)
set(GMP OFF)
set(PAPILO OFF)
set(ZIMPL OFF)
set(IPOPT OFF)
set(AMPL OFF)
set(TPI "tny" CACHE STRING "Scip param")
set(EXPRINT "none" CACHE STRING "Scip param")
set(LPS "none" CACHE STRING "Scip param")
set(SYM "none" CACHE STRING "Scip param")
FetchContent_Declare(
scip
GIT_REPOSITORY "https://github.com/scipopt/scip.git"
GIT_TAG "v921"
GIT_SHALLOW TRUE
PATCH_COMMAND git apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/../../patches/scip-v921.patch"
PATCH_COMMAND git apply --ignore-whitespace
"${CMAKE_CURRENT_LIST_DIR}/../../patches/scip-v921.patch"
)
set(SHARED ON CACHE BOOL "Scip param" FORCE)
set(ZLIB ON CACHE BOOL "Scip param" FORCE)
set(READLINE OFF CACHE BOOL "Scip param" FORCE)
set(GMP OFF CACHE BOOL "Scip param" FORCE)
set(PAPILO OFF CACHE BOOL "Scip param" FORCE)
set(ZIMPL OFF CACHE BOOL "Scip param" FORCE)
set(AMPL OFF CACHE BOOL "Scip param" FORCE)
set(IPOPT OFF CACHE BOOL "Scip param" FORCE)
set(TPI "tny" CACHE STRING "Scip param" FORCE)
set(EXPRINT "none" CACHE STRING "Scip param" FORCE)
set(LPS "spx" CACHE STRING "Scip param" FORCE)
set(SYM "none" CACHE STRING "Scip param" FORCE)
FetchContent_MakeAvailable(scip)
set(LPI_GLOP_SRC ${scip_SOURCE_DIR}/src/lpi/lpi_glop.cpp PARENT_SCOPE)
list(POP_BACK CMAKE_MESSAGE_INDENT)
message(CHECK_PASS "fetched")
endif()

View File

@@ -41,6 +41,14 @@ digraph CMake {
label = "abseil/abseil-cpp.git";
}
subgraph clusterRe2 {
Re2 [label="re2::re2"];
color=royalblue;
label = "google/re2.git";
}
Absl -> Re2;
subgraph clusterProtobuf {
Protobuf [label="protobuf::libprotobuf", color=royalblue];
@@ -49,6 +57,7 @@ digraph CMake {
}
ZLIB -> Protobuf;
Absl -> Protobuf;
Re2 -> Protobuf;
subgraph clusterCoinOR {
subgraph clusterCoinUtils {
@@ -139,15 +148,27 @@ digraph CMake {
}
subgraph clusterSCIPSolver {
subgraph clusterSoplex {
SPX [label="libsoplex-pic"];
color=royalblue;
label = "scipopt/soplex.git";
}
subgraph clusterSCIP {
SCIP [label="scip::scip"];
SCIP [label="SCIP::libscip"];
color=royalblue;
label = "scipopt/scip.git";
}
SPX -> SCIP;
color=royalblue;
label = "SCIP Solver\n(-DUSE_SCIP=ON)";
}
ZLIB -> SPX;
ZLIB -> SCIP;
SWIG_WIN [label="swigwin\n(Windows)", color=chocolate];
@@ -176,6 +197,7 @@ digraph CMake {
ZLIB -> OR_SRC;
Absl -> OR_SRC;
Protobuf -> OR_SRC;
Re2 -> OR_SRC;
ClpSolver -> OR_SRC;
CbcSolver -> OR_SRC;
GLPK -> OR_SRC;
@@ -228,7 +250,7 @@ digraph CMake {
OR_SRC -> OR_WJAVA [label="swig", color=chocolate];
OR_SRC -> OR_JAVA [label="swig", color=chocolate];
OR_WJAVA -> OR_JAVA;
OR_JAVA -> PKG_JAVA [label="maven (WIP)", style="dotted", color=crimson];
OR_JAVA -> PKG_JAVA [label="maven", color=crimson];
color=crimson;
label = "Java\n(-DBUILD_JAVA=ON)";

View File

@@ -135,12 +135,20 @@ digraph CMakeDeps {
}
subgraph clusterSCIPSolver {
subgraph clusterSoplex {
SPX [label="libsoplex"];
color=royalblue;
label = "scipopt/soplex.git";
}
subgraph clusterSCIP {
SCIP [label="scip::scip"];
SCIP [label="SCIP::libscip"];
color=royalblue;
label = "scipopt/scip.git";
}
SPX -> SCIP;
color=royalblue;
label = "-DUSE_SCIP=ON AND -DBUILD_SCIP=ON";
}
@@ -148,7 +156,11 @@ digraph CMakeDeps {
// inter deps
ZLIB -> Protobuf;
ZLIB -> Cbc;
ZLIB -> SPX;
ZLIB -> SCIP;
Absl -> Re2;
Absl -> Protobuf;
Re2 -> Protobuf;
}
@enddot
# vim tw:0

View File

@@ -395,6 +395,9 @@ set(need_cbc_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_Cbc}>>")
set(need_unix_highs_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_HIGHS}>>")
set(need_windows_highs_lib "$<AND:${is_windows},$<BOOL:${BUILD_HIGHS}>>")
set(need_unix_scip_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_SCIP}>>")
set(need_windows_scip_lib "$<AND:${is_windows},$<BOOL:${BUILD_SCIP}>>")
set(is_ortools_shared "$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>")
set(need_unix_ortools_lib "$<AND:${is_not_windows},${is_ortools_shared}>")
set(need_windows_ortools_lib "$<AND:${is_windows},${is_ortools_shared}>")

View File

@@ -298,6 +298,9 @@ set(need_unix_cbc_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_Cbc}>>")
set(need_unix_highs_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_HIGHS}>>")
set(need_windows_highs_lib "$<AND:${is_windows},$<BOOL:${BUILD_HIGHS}>>")
set(need_unix_scip_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_SCIP}>>")
set(need_windows_scip_lib "$<AND:${is_windows},$<BOOL:${BUILD_SCIP}>>")
set(is_ortools_shared "$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>")
set(need_unix_ortools_lib "$<AND:${is_not_windows},${is_ortools_shared}>")
set(need_windows_ortools_lib "$<AND:${is_windows},${is_ortools_shared}>")
@@ -441,8 +444,14 @@ add_custom_command(
COMMAND ${CMAKE_COMMAND} -E
$<IF:$<BOOL:${BUILD_HIGHS}>,copy,true>
$<${need_unix_highs_lib}:$<TARGET_SONAME_FILE:highs>>
$<${need_windows_highs_lib}:$<TARGET_FILE:highs>>
$<${need_unix_highs_lib}:$<TARGET_SONAME_FILE:highs::highs>>
$<${need_windows_highs_lib}:$<TARGET_FILE:highs::highs>>
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
COMMAND ${CMAKE_COMMAND} -E
$<IF:$<BOOL:${BUILD_SCIP}>,copy,true>
$<${need_unix_scip_lib}:$<TARGET_SONAME_FILE:SCIP::libscip>>
$<${need_windows_scip_lib}:$<TARGET_FILE:SCIP::libscip>>
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
COMMAND ${CMAKE_COMMAND} -E

View File

@@ -66,7 +66,7 @@ if(@USE_PDLP@)
endif()
if(@USE_SCIP@)
if(NOT TARGET libscip)
if(NOT TARGET SCIP::libscip)
find_dependency(SCIP REQUIRED)
endif()
endif()

View File

@@ -454,6 +454,9 @@ set(need_unix_cbc_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_Cbc}>>")
set(need_unix_highs_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_HIGHS}>>")
set(need_windows_highs_lib "$<AND:${is_windows},$<BOOL:${BUILD_HIGHS}>>")
set(need_unix_scip_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_SCIP}>>")
set(need_windows_scip_lib "$<AND:${is_windows},$<BOOL:${BUILD_SCIP}>>")
set(is_ortools_shared "$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>")
set(need_unix_ortools_lib "$<AND:${is_not_windows},${is_ortools_shared}>")
set(need_windows_ortools_lib "$<AND:${is_windows},${is_ortools_shared}>")
@@ -597,8 +600,14 @@ add_custom_command(
COMMAND ${CMAKE_COMMAND} -E
$<IF:$<BOOL:${BUILD_HIGHS}>,copy,true>
$<${need_unix_highs_lib}:$<TARGET_SONAME_FILE:highs>>
$<${need_windows_highs_lib}:$<TARGET_FILE:highs>>
$<${need_unix_highs_lib}:$<TARGET_SONAME_FILE:highs::highs>>
$<${need_windows_highs_lib}:$<TARGET_FILE:highs::highs>>
${PYTHON_PROJECT}/.libs
COMMAND ${CMAKE_COMMAND} -E
$<IF:$<BOOL:${BUILD_SCIP}>,copy,true>
$<${need_unix_scip_lib}:$<TARGET_SONAME_FILE:SCIP::libscip>>
$<${need_windows_scip_lib}:$<TARGET_FILE:SCIP::libscip>>
${PYTHON_PROJECT}/.libs
COMMAND ${CMAKE_COMMAND} -E