diff --git a/modules/scip/9.2.0.bcr.1/MODULE.bazel b/modules/scip/9.2.0.bcr.1/MODULE.bazel new file mode 100644 index 00000000000..b2a03c509fd --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/MODULE.bazel @@ -0,0 +1,18 @@ +module( + name = "scip", + version = "9.2.0.bcr.1", + compatibility_level = 1, +) + +bazel_dep( + name = "bliss", + version = "0.73", +) +bazel_dep( + name = "platforms", + version = "0.0.9", +) +bazel_dep( + name = "zlib", + version = "1.2.13", +) diff --git a/modules/scip/9.2.0.bcr.1/patches/add_build_file.patch b/modules/scip/9.2.0.bcr.1/patches/add_build_file.patch new file mode 100644 index 00000000000..3f0e03b903c --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/patches/add_build_file.patch @@ -0,0 +1,168 @@ +diff --git a/BUILD.bazel b/BUILD.bazel +index 36283fe63d..c1e18e271f 100644 +--- a/BUILD.bazel ++++ b/BUILD.bazel +@@ -0,0 +1,163 @@ ++# Copyright 2010-2024 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. ++ ++exports_files( ++ ["src/lpi/lpi_glop.cpp"], ++) ++ ++config_setting( ++ name = "on_linux", ++ constraint_values = [ ++ "@platforms//os:linux", ++ ], ++) ++ ++config_setting( ++ name = "on_macos", ++ constraint_values = [ ++ "@platforms//os:macos", ++ ], ++) ++ ++config_setting( ++ name = "on_windows", ++ constraint_values = [ ++ "@platforms//os:windows", ++ ], ++) ++ ++PLATFORM_FLAGS = select({ ++ "on_linux": [ ++ "-Wunknown-pragmas", ++ "-fexceptions", ++ "-DSYM=bliss", ++ "-DBLISS_VERSION=\\\"0.73\\\"", ++ ], ++ "on_macos": [ ++ "-Wunknown-pragmas", ++ "-fexceptions", ++ "-DSYM=bliss", ++ "-DBLISS_VERSION=\\\"0.73\\\"", ++ ], ++ "on_windows": [ ++ "/DSYM=none", ++ "/DSCIP_NO_SIGACTION", ++ "/DSCIP_NO_STRTOK_R", ++ ], ++ "//conditions:default": [], ++}) ++ ++PLATFORM_DEPS = select({ ++ "on_linux": ["@bliss"], ++ "on_macos": ["@bliss"], ++ "on_windows": [], ++ "//conditions:default": [], ++}) ++ ++BLISS_FILE = select({ ++ "on_linux": ["src/symmetry/compute_symmetry_bliss.cpp"], ++ "on_macos": ["src/symmetry/compute_symmetry_bliss.cpp"], ++ "on_windows": ["src/symmetry/compute_symmetry_none.cpp"], ++ "//conditions:default": ["src/symmetry/compute_symmetry_none.cpp"], ++}) ++ ++BASE_SRCS = glob( ++ [ ++ "src/*/*.c", ++ ], ++ exclude = [ ++ "src/lpi/lpi_*.c", ++ "src/nauty/*", ++ "src/scip/exprinterpret_*.c", ++ "src/scip/nlpi_filtersqp.c", ++ "src/scip/nlpi_worhp.c", ++ "src/scip/*_xyz.c", ++ "src/scip/sorttpl.c", ++ "src/symmetry/compute_symmetry_*.cpp", ++ "src/symmetry/*nauty*", ++ "src/tpi/tpi_*.c", ++ ], ++) ++ ++BASE_HDRS = glob( ++ [ ++ "src/*/*.h", ++ "src/*/*.hpp", ++ "src/scip/githash.c", ++ "src/scip/sorttpl.c", ++ "src/scip/buildflags.c", ++ ], ++ exclude = [ "src/scip/*_xyz.h" ], ++) ++ ++BASE_COPTS = [ ++ "$(STACK_FRAME_UNLIMITED)", # src/scip/reader_cnf.c ++ "-DSCIP_IPOPT=\\\"NONE\\\"", ++ "-DSCIP_LPS=\\\"glop\\\"", ++ "-DSCIP_GITHASH=\\\"a740f0891e\\\"", ++] ++ ++ ++DEFINES = [ ++ # Scip optionally depends on scip/config.h and scip/scip_export.h ++ # that are generated by build system. ++ # ++ # We need every library and binary that depends on SCIP libraries to ++ # define this macro. That is why we use `defines' here instead of ++ # `copts' or `local_defines'. ++ "NO_CONFIG_HEADER", ++] ++ ++cc_library( ++ name = "scip", ++ srcs = BASE_SRCS + BLISS_FILE + [ ++ "src/scip/exprinterpret_none.c", ++ "src/tpi/tpi_none.c", ++ ], ++ hdrs = BASE_HDRS, ++ copts = BASE_COPTS + [ ++ "-DTPI_NONE", # src/tpi/tpi_none.h ++ "-DNPARASCIP", ++ ] + PLATFORM_FLAGS, ++ defines = DEFINES, ++ features = ["-parse_headers"], ++ includes = [ ++ "src", ++ ], ++ visibility = ["//visibility:public"], ++ deps = [ ++ "@zlib", ++ ] + PLATFORM_DEPS, ++) ++ ++cc_library( ++ name = "scip_parallel", ++ srcs = BASE_SRCS + BLISS_FILE + [ ++ "src/scip/exprinterpret_none.c", ++ "src/tpi/tpi_tnycthrd.c", ++ ], ++ hdrs = BASE_HDRS, ++ copts = BASE_COPTS + [ ++ "-DTPI_TNY", # src/tpi/tpi_tnycthrd.h ++ "-DPARASCIP", ++ ] + PLATFORM_FLAGS, ++ defines = DEFINES, ++ features = ["-parse_headers"], ++ includes = [ ++ "src", ++ ], ++ visibility = ["//visibility:public"], ++ deps = [ ++ "@zlib", ++ ] + PLATFORM_DEPS, ++) diff --git a/modules/scip/9.2.0.bcr.1/patches/add_buildflags_h.patch b/modules/scip/9.2.0.bcr.1/patches/add_buildflags_h.patch new file mode 100644 index 00000000000..3ee6b4d933b --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/patches/add_buildflags_h.patch @@ -0,0 +1,91 @@ +diff --git a/src/scip/buildflags.h b/src/scip/buildflags.h +index c686abcd20..1ea6a4fbf4 100644 +--- a/src/scip/buildflags.h ++++ b/src/scip/buildflags.h +@@ -0,0 +1,86 @@ ++/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ ++/* */ ++/* This file is part of the program and library */ ++/* SCIP --- Solving Constraint Integer Programs */ ++/* */ ++/* Copyright (c) 2002-2024 Zuse Institute Berlin (ZIB) */ ++/* */ ++/* 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. */ ++/* */ ++/* You should have received a copy of the Apache-2.0 license */ ++/* along with SCIP; see the file LICENSE. If not visit scipopt.org. */ ++/* */ ++/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ ++ ++#if defined(__linux__) ++#define SCIP_OSTYPE "Linux" ++#elif defined(__APPLE__) ++#define SCIP_OSTYPE "Darwin" ++#elif defined(__FreeBSD__) ++#define SCIP_OSTYPE "FreeBSD" ++#elif defined(__NetBSD__) ++#define SCIP_OSTYPE "NetBSD" ++#elif defined(__OpenBSD__) ++#define SCIP_OSTYPE "OpenBSD" ++#elif defined(_MSC_VER) || defined(__MINGW64__) ++#define SCIP_OSTYPE "Windows" ++#else ++#define SCIP_OSTYPE "UnknownArch" ++#endif ++ ++#if defined(__clang__) ++#define SCIP_COMP "CLang" ++#elif defined(__GNUC__) || defined(__GNUG__) ++#define SCIP_COMP "GCC" ++#elif defined(_MSC_VER) ++#define SCIP_COMP "VisualStudio" ++#else ++#define SCIP_COMP "UnknownCompiler" ++#endif ++ ++#if defined(__x86_64__) || defined(_M_X64) ++#define SCIP_ARCH "x86_64" ++#elif defined(__aarch64__) ++#define SCIP_ARCH "arm64" ++#else ++#define SCIP_ARCH "UnknownArch" ++#endif ++ ++#define SCIP_BUILDFLAGS \ ++ "ARCH=" SCIP_ARCH "\n " \ ++ "OSTYPE=" SCIP_OSTYPE "\n " \ ++ "COMP=" SCIP_COMP "\n " \ ++ "BUILD=Release\n " \ ++ "DEBUGSOL=OFF\n " \ ++ "EXPRINT=none\n " \ ++ "SYM=none\n " \ ++ "GMP=OFF\n " \ ++ "IPOPT=OFF\n " \ ++ "WORHP=OFF\n " \ ++ "LPS=glop\n " \ ++ "LPSCHECK=OFF\n " \ ++ "NOBLKBUFMEM=OFF\n " \ ++ "NOBLKMEM=OFF\n " \ ++ "NOBUFMEM=OFF\n " \ ++ "THREADSAFE=ON; " \ ++ "FORCE\n " \ ++ "READLINE=OFF\n " \ ++ "SANITIZE_ADDRESS=OFF\n " \ ++ "SANITIZE_MEMORY=OFF\n " \ ++ "SANITIZE_UNDEFINED=OFF\n " \ ++ "SANITIZE_THREAD=OFF\n " \ ++ "SHARED=OFF\n " \ ++ "VERSION=9.2.0.0\n " \ ++ "API_VERSION=115\n " \ ++ "ZIMPL=OFF\n " \ ++ "ZLIB=ON" diff --git a/modules/scip/9.2.0.bcr.1/patches/add_config_h.patch b/modules/scip/9.2.0.bcr.1/patches/add_config_h.patch new file mode 100644 index 00000000000..9bd53e9fc06 --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/patches/add_config_h.patch @@ -0,0 +1,37 @@ +diff --git a/src/scip/config.h b/src/scip/config.h +new file mode 100644 +index 0000000000..871fde8e55 +--- /dev/null ++++ b/src/scip/config.h +@@ -0,0 +1,31 @@ ++#ifndef __CONFIG_H__ ++#define __CONFIG_H__ ++ ++#define CMAKE_BUILD_TYPE "Release" ++#define SCIP_VERSION_MAJOR 9 ++#define SCIP_VERSION_MINOR 2 ++#define SCIP_VERSION_PATCH 0 ++#define SCIP_VERSION_SUB 0 ++#define SCIP_VERSION_API 115 ++/* #undef BMS_NOBLOCKMEM */ ++/* #undef SCIP_NOBUFFERMEM */ ++/* #undef WITH_DEBUG_SOLUTION */ ++/* #undef SCIP_NO_SIGACTION */ ++/* #undef SCIP_NO_STRTOK_R */ ++/* #undef TPI_NONE */ ++/* #undef TPI_OMP */ ++#define SCIP_THREADSAFE ++#define WITH_SCIPDEF ++/* #undef SCIP_WITH_LAPACK */ ++/* #undef SCIP_WITH_PAPILO */ ++#define SCIP_WITH_ZLIB ++/* #undef SCIP_WITH_READLINE */ ++/* #undef SCIP_WITH_GMP */ ++/* #undef SCIP_WITH_LPSCHECK */ ++/* #undef SCIP_WITH_ZIMPL */ ++/* #undef SCIP_WITH_AMPL */ ++#define SCIP_ROUNDING_FE ++/* #undef SCIP_ROUNDING_FP */ ++/* #undef SCIP_ROUNDING_MS */ ++ ++#endif diff --git a/modules/scip/9.2.0.bcr.1/patches/add_githash_c.patch b/modules/scip/9.2.0.bcr.1/patches/add_githash_c.patch new file mode 100644 index 00000000000..bbd18443357 --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/patches/add_githash_c.patch @@ -0,0 +1,7 @@ +diff --git a/src/scip/githash.c b/src/scip/githash.c +new file mode 100644 +index 0000000000..d1e99c662d +--- /dev/null ++++ b/src/scip/githash.c +@@ -0,0 +1,1 @@ ++ diff --git a/modules/scip/9.2.0.bcr.1/patches/add_scip_export_h.patch b/modules/scip/9.2.0.bcr.1/patches/add_scip_export_h.patch new file mode 100644 index 00000000000..84b9bcbdb0e --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/patches/add_scip_export_h.patch @@ -0,0 +1,30 @@ +diff --git a/src/scip/scip_export.h b/src/scip/scip_export.h +new file mode 100644 +index 0000000000..871fde8e55 +--- /dev/null ++++ b/src/scip/scip_export.h +@@ -0,0 +1,24 @@ ++ ++#ifndef SCIP_EXPORT_H ++#define SCIP_EXPORT_H ++ ++#ifdef SCIP_STATIC_DEFINE ++# define SCIP_EXPORT ++# define SCIP_NO_EXPORT ++#else ++# ifndef SCIP_EXPORT ++# ifdef libscip_EXPORTS ++/* We are building this library */ ++# define SCIP_EXPORT ++# else ++/* We are using this library */ ++# define SCIP_EXPORT ++# endif ++# endif ++ ++# ifndef SCIP_NO_EXPORT ++# define SCIP_NO_EXPORT ++# endif ++#endif ++ ++#endif /* SCIP_EXPORT_H */ diff --git a/modules/scip/9.2.0.bcr.1/patches/compute_symmetry_bliss.cpp.patch b/modules/scip/9.2.0.bcr.1/patches/compute_symmetry_bliss.cpp.patch new file mode 100644 index 00000000000..44f5d882210 --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/patches/compute_symmetry_bliss.cpp.patch @@ -0,0 +1,15 @@ +diff --git a/src/symmetry/compute_symmetry_bliss.cpp b/src/symmetry/compute_symmetry_bliss.cpp +index 0ba5ea060e..4fc4338e73 100644 +--- a/src/symmetry/compute_symmetry_bliss.cpp ++++ b/src/symmetry/compute_symmetry_bliss.cpp +@@ -34,8 +34,8 @@ + #include "compute_symmetry.h" + + /* include bliss graph */ +-#include +-#include ++#include ++#include + + #include + #include diff --git a/modules/scip/9.2.0.bcr.1/patches/lpi_glop.patch b/modules/scip/9.2.0.bcr.1/patches/lpi_glop.patch new file mode 100644 index 00000000000..209c058ebbe --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/patches/lpi_glop.patch @@ -0,0 +1,45 @@ +diff --git a/src/lpi/lpi_glop.cpp b/src/lpi/lpi_glop.cpp +index 2471778a8f..673e9689e9 100644 +--- a/src/lpi/lpi_glop.cpp ++++ b/src/lpi/lpi_glop.cpp +@@ -51,7 +51,6 @@ + #include "ortools/util/time_limit.h" + + #include "ortools/base/logging.h" +-#include "ortools/base/vlog_is_on.h" + + #include "lpi/lpi.h" + #include "scip/pub_message.h" +@@ -2942,12 +2941,12 @@ SCIP_RETCODE SCIPlpiSetIntpar( + SCIPdebugMessage("SCIPlpiSetIntpar: SCIP_LPPAR_LPINFO -> %d.\n", ival); + if ( ival == 0 ) + { +- (void) google::SetVLOGLevel("*", google::GLOG_INFO); ++ absl::SetFlag(&FLAGS_stderrthreshold, 2); + lpi->lp_info = false; + } + else + { +- (void) google::SetVLOGLevel("*", google::GLOG_ERROR); ++ absl::SetFlag(&FLAGS_stderrthreshold, 0); + lpi->lp_info = true; + } + break; +@@ -3190,7 +3189,7 @@ SCIP_RETCODE SCIPlpiReadLP( + + const std::string filespec(fname); + MPModelProto proto; +- if ( ! ReadFileToProto(filespec, &proto) ) ++ if ( ! ReadFileToProto(filespec, &proto).ok() ) + { + SCIPerrorMessage("Could not read <%s>\n", fname); + return SCIP_READERROR; +@@ -3214,7 +3213,7 @@ SCIP_RETCODE SCIPlpiWriteLP( + MPModelProto proto; + LinearProgramToMPModelProto(*lpi->linear_program, &proto); + const std::string filespec(fname); +- if ( ! WriteProtoToFile(filespec, proto, operations_research::ProtoWriteFormat::kProtoText, true) ) ++ if ( ! WriteProtoToFile(filespec, proto, operations_research::ProtoWriteFormat::kProtoText, true).ok() ) + { + SCIPerrorMessage("Could not write <%s>\n", fname); + return SCIP_READERROR; diff --git a/modules/scip/9.2.0.bcr.1/patches/module_dot_bazel.patch b/modules/scip/9.2.0.bcr.1/patches/module_dot_bazel.patch new file mode 100644 index 00000000000..14073945e0e --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/patches/module_dot_bazel.patch @@ -0,0 +1,21 @@ +--- a/MODULE.bazel ++++ a/MODULE.bazel +@@ -0,0 +1,18 @@ ++module( ++ name = "scip", ++ version = "9.2.0.bcr.1", ++ compatibility_level = 1, ++) ++ ++bazel_dep( ++ name = "bliss", ++ version = "0.73", ++) ++bazel_dep( ++ name = "platforms", ++ version = "0.0.9", ++) ++bazel_dep( ++ name = "zlib", ++ version = "1.2.13", ++) diff --git a/modules/scip/9.2.0.bcr.1/presubmit.yml b/modules/scip/9.2.0.bcr.1/presubmit.yml new file mode 100644 index 00000000000..f60a32c89eb --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/presubmit.yml @@ -0,0 +1,17 @@ +matrix: + platform: + - debian10 + - ubuntu2004 + - macos + - macos_arm64 + - windows + bazel: + - 7.x + - 6.x +tasks: + verify_targets: + name: Verify build targets + platform: ${{ platform }} + bazel: ${{ bazel }} + build_targets: + - '@scip//...' diff --git a/modules/scip/9.2.0.bcr.1/source.json b/modules/scip/9.2.0.bcr.1/source.json new file mode 100644 index 00000000000..6b1e864c67a --- /dev/null +++ b/modules/scip/9.2.0.bcr.1/source.json @@ -0,0 +1,16 @@ +{ + "url": "https://github.com/scipopt/scip/archive/refs/tags/v920.tar.gz", + "integrity": "sha256-oi3CD0Tpm/7AcYif1a8r/FfErxS3bXd9ExIAZhY0b3w=", + "strip_prefix": "scip-920", + "patches": { + "add_build_file.patch": "sha256-+uXdUr8OgvE1bO41YkG2Nn3gL2k+tby85qML+6UK9dk=", + "module_dot_bazel.patch": "sha256-q6OxNQJaBw4LIu09SugEekCWobm6RSzv1hVEv4PBNJM=", + "add_buildflags_h.patch": "sha256-XTMLqAgOLbzJsBeeOlpYMgHZ54H/WoFUiwSs2m12lI8=", + "add_config_h.patch": "sha256-EOS5VOaw/zOcjrq001yaWnw2dFyb5m7816+vn3skbj0=", + "add_githash_c.patch": "sha256-zM+HwMB8gMy3VD05roWU7LOtZ1pxajLuQ+spFKH4ruQ=", + "add_scip_export_h.patch": "sha256-Ft0dOF/qTpjVgb8a1WNmCOdPNxL2X+eHkPfMFpoRTbE=", + "compute_symmetry_bliss.cpp.patch": "sha256-WT16SQpkdpGApHrTHwSYyHpnXPfOTu2sZfDfQQ7zV0s=", + "lpi_glop.patch": "sha256-h+EJD7sQ06WMQsoOlvx+5m6b2G/fag+8FE2hSHlgRd8=" + }, + "patch_strip": 1 +} diff --git a/modules/scip/metadata.json b/modules/scip/metadata.json index cee8ead2852..b4f61e6b77e 100644 --- a/modules/scip/metadata.json +++ b/modules/scip/metadata.json @@ -11,7 +11,8 @@ ], "versions": [ "8.1.0", - "9.2.0" + "9.2.0", + "9.2.0.bcr.1" ], "yanked_versions": {} }