Files
ortools-clone/patches/scip-v10.0.0.patch
2025-12-01 17:48:32 +01:00

110 lines
4.4 KiB
Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b3c57799..eeeca4c8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -52,9 +52,11 @@ set(CPACK_PACKAGE_VENDOR "Zuse Institute Berlin")
set(CPACK_PACKAGE_CONTACT "http://scipopt.org")
include(CPack)
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+if(CMAKE_PROJECT_NAME EQUAL "SCIP")
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+endif()
if(SCIPOptSuite_BINARY_DIR)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SCIPOptSuite_BINARY_DIR}/bin)
@@ -517,10 +519,10 @@ endif()
message(STATUS "Finding Solver \"${LPS}\"")
if(LPS STREQUAL "spx")
message(STATUS "Finding Soplex")
- find_package(SOPLEX REQUIRED CONFIG HINTS ${SOPLEX_DIR})
- if(NOT SOPLEX_FOUND)
+ if(NOT TARGET libsoplex-pic OR NOT TARGET libsoplex)
message(FATAL_ERROR "Requested LP solver SoPlex not found.")
endif()
+ set(SOPLEX_FOUND TRUE)
if (DEFINED SOPLEX_WITH_PAPILO)
message(STATUS "SOPLEX links PAPILO")
if((NOT SCIP_WITH_PAPILO)) # TODO not sure how to handle AUTOBUILD
@@ -593,11 +595,11 @@ if(SOPLEX_FOUND)
message(STATUS "Finding SOPLEX - found")
# SoPlex headers can be directly included
include_directories(${SOPLEX_INCLUDE_DIRS})
- set(LPS_LIBRARIES ${SOPLEX_LIBRARIES})
- set(LPS_PIC_LIBRARIES ${SOPLEX_PIC_LIBRARIES})
+ set(LPS_LIBRARIES libsoplex)
+ set(LPS_PIC_LIBRARIES libsoplex-pic)
set(lpi lpi/lpi_spx.cpp)
else()
- message(STATUS "Support SOPLEX: OFF")
+ message(FATAL_ERROR "SOPLEX not found !")
endif()
if(CLP_FOUND)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c6ce7283..6b6b1fc8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1213,6 +1213,13 @@ target_link_libraries(scip
add_dependencies(libscip scip_update_githash)
add_dependencies(scip scip_update_githash)
+if(APPLE)
+ set_target_properties(libscip PROPERTIES
+ INSTALL_RPATH "@loader_path")
+elseif(UNIX)
+ set_target_properties(libscip PROPERTIES
+ INSTALL_RPATH "$ORIGIN")
+endif()
set_target_properties(libscip PROPERTIES
VERSION ${SCIP_VERSION_MAJOR}.${SCIP_VERSION_MINOR}.${SCIP_VERSION_PATCH}
SOVERSION ${SCIP_VERSION_MAJOR}.${SCIP_VERSION_MINOR}
@@ -1265,17 +1272,8 @@ install(FILES ${PROJECT_SOURCE_DIR}/LICENSE DESTINATION ${CMAKE_INSTALL_DATADIR}
install(FILES ${PROJECT_SOURCE_DIR}/src/tclique/LICENSE DESTINATION ${CMAKE_INSTALL_DATADIR}/licenses/scip/tclique)
# Add all targets to the build-tree export set
-export(TARGETS scip libscip
- FILE "${PROJECT_BINARY_DIR}/scip-targets.cmake")
-
-# make soplex and zimpl dir absolute for the config file
-if(SOPLEX_NEEDED)
- get_filename_component(CONF_SOPLEX_DIR ${SOPLEX_DIR} REALPATH BASE_DIR ${CMAKE_SOURCE_DIR})
-endif()
-
-if(ZIMPL_NEEDED)
- get_filename_component(CONF_ZIMPL_DIR ${ZIMPL_DIR} REALPATH BASE_DIR ${CMAKE_SOURCE_DIR})
-endif()
+#export(TARGETS scip libscip
+# FILE "${PROJECT_BINARY_DIR}/scip-targets.cmake")
# Configure scip-config.cmake for the build-tree:
# We add the CMake module path from the sources.
@@ -1295,18 +1293,16 @@ ${PROJECT_BINARY_DIR}/scip-config-version.cmake
# We add the current directory of the installed scip-config.cmake as a CMake module path.
set(EXTRA_CMAKE_MODULE_PATH "\${CMAKE_CURRENT_LIST_DIR}")
set(CONF_INCLUDE_DIRS "\${CMAKE_CURRENT_LIST_DIR}/../../../include")
-if(SOPLEX_NEEDED)
- set(CONF_SOPLEX_DIR "\${CMAKE_CURRENT_LIST_DIR}/../soplex")
-endif()
-if(ZIMPL_NEEDED)
- set(CONF_ZIMPL_DIR "\${CMAKE_CURRENT_LIST_DIR}/../zimpl")
-endif()
configure_file(${PROJECT_SOURCE_DIR}/scip-config.cmake.in
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/scip-config.cmake" @ONLY)
# install the targets of the scip export group and the config file so that other projects
# can link easily against scip
-install(EXPORT scip-targets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scip)
+install(EXPORT scip-targets
+ NAMESPACE SCIP::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scip
+ COMPONENT Devel
+)
install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/scip-config.cmake"
${PROJECT_BINARY_DIR}/scip-config-version.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/scip)