diff --git a/modules/scip/9.2.0.bcr.3/MODULE.bazel b/modules/scip/9.2.0.bcr.3/MODULE.bazel new file mode 100644 index 00000000000..824675b1216 --- /dev/null +++ b/modules/scip/9.2.0.bcr.3/MODULE.bazel @@ -0,0 +1,27 @@ +module( + name = "scip", + version = "9.2.0.bcr.3", + bazel_compatibility = [">=7.2.1"], # need support for "overlay" directory + compatibility_level = 1, +) + +bazel_dep( + name = "bliss", + version = "0.73", +) + +bazel_dep( + name = "platforms", + version = "0.0.10", +) + +bazel_dep( + name = "soplex", + version = "7.1.2.bcr.1", +) + +bazel_dep( + name = "zlib", + version = "1.3.1.bcr.3", +) + diff --git a/modules/scip/9.2.0.bcr.3/overlay/BUILD.bazel b/modules/scip/9.2.0.bcr.3/overlay/BUILD.bazel new file mode 100644 index 00000000000..a1920d0e3a1 --- /dev/null +++ b/modules/scip/9.2.0.bcr.3/overlay/BUILD.bazel @@ -0,0 +1,144 @@ +# 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. + +# We use a lot of macros to reduce the duplication between scip and scip_parallel. + +PLATFORM_FLAGS = select({ + "@platforms//os:linux": [ + "-Wunknown-pragmas", + "-fexceptions", + "-DSYM=bliss", + "-DBLISS_VERSION=\\\"0.73\\\"", + ], + "@platforms//os:macos": [ + "-Wunknown-pragmas", + "-fexceptions", + "-DSYM=bliss", + "-DBLISS_VERSION=\\\"0.73\\\"", + ], + "@platforms//os:windows": [ + "/DSYM=none", + "/DSCIP_NO_SIGACTION", + "/DSCIP_NO_STRTOK_R", + "/utf-8" + ], + "//conditions:default": [], +}) + +PLATFORM_DEPS = select({ + "@platforms//os:linux": ["@bliss"], + "@platforms//os:macos": ["@bliss"], + "@platforms//os:windows": [], + "//conditions:default": [], +}) + +BLISS_FILE = select({ + "@platforms//os:linux": ["src/symmetry/compute_symmetry_bliss.cpp"], + "@platforms//os:macos": ["src/symmetry/compute_symmetry_bliss.cpp"], + "@platforms//os: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", + ], + exclude = [ "src/scip/*_xyz.h" ], +) + [ + "src/scip/githash.c", + "src/scip/sorttpl.c", +] + +BASE_COPTS = [ + "-DSCIP_IPOPT=\\\"NONE\\\"", + "-DSCIP_LPS=\\\"spx2\\\"", + "-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/lpi/lpi_spx2.cpp", + "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, + includes = ["src"], + visibility = ["//visibility:public"], + deps = [ + "@soplex", + "@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, + includes = ["src"], + visibility = ["//visibility:public"], + deps = [ + "@soplex", + "@zlib", + ] + PLATFORM_DEPS, +) + +cc_binary( + name = "scip_interactive", + srcs = ["src/cppmain.cpp"], + deps = [":scip"], +) + diff --git a/modules/scip/9.2.0.bcr.3/overlay/MODULE.bazel b/modules/scip/9.2.0.bcr.3/overlay/MODULE.bazel new file mode 120000 index 00000000000..9b599e3ad9c --- /dev/null +++ b/modules/scip/9.2.0.bcr.3/overlay/MODULE.bazel @@ -0,0 +1 @@ +../MODULE.bazel \ No newline at end of file diff --git a/modules/scip/9.2.0.bcr.3/patches/add_buildflags_h.patch b/modules/scip/9.2.0.bcr.3/patches/add_buildflags_h.patch new file mode 100644 index 00000000000..1fba7afc63c --- /dev/null +++ b/modules/scip/9.2.0.bcr.3/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=spx2\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.3/patches/add_config_h.patch b/modules/scip/9.2.0.bcr.3/patches/add_config_h.patch new file mode 100644 index 00000000000..9bd53e9fc06 --- /dev/null +++ b/modules/scip/9.2.0.bcr.3/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.3/patches/add_githash_c.patch b/modules/scip/9.2.0.bcr.3/patches/add_githash_c.patch new file mode 100644 index 00000000000..bbd18443357 --- /dev/null +++ b/modules/scip/9.2.0.bcr.3/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.3/patches/add_scip_export_h.patch b/modules/scip/9.2.0.bcr.3/patches/add_scip_export_h.patch new file mode 100644 index 00000000000..84b9bcbdb0e --- /dev/null +++ b/modules/scip/9.2.0.bcr.3/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.3/patches/compute_symmetry_bliss.cpp.patch b/modules/scip/9.2.0.bcr.3/patches/compute_symmetry_bliss.cpp.patch new file mode 100644 index 00000000000..44f5d882210 --- /dev/null +++ b/modules/scip/9.2.0.bcr.3/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.3/presubmit.yml b/modules/scip/9.2.0.bcr.3/presubmit.yml new file mode 100644 index 00000000000..d8e81bdc60b --- /dev/null +++ b/modules/scip/9.2.0.bcr.3/presubmit.yml @@ -0,0 +1,17 @@ +matrix: + platform: + - debian10 + - ubuntu2004 + - macos + - macos_arm64 + - windows + bazel: + - 8.x + - 7.x +tasks: + verify_targets: + name: Verify build targets + platform: ${{ platform }} + bazel: ${{ bazel }} + build_targets: + - '@scip//...' diff --git a/modules/scip/9.2.0.bcr.3/source.json b/modules/scip/9.2.0.bcr.3/source.json new file mode 100644 index 00000000000..7e7a115249c --- /dev/null +++ b/modules/scip/9.2.0.bcr.3/source.json @@ -0,0 +1,17 @@ +{ + "url": "https://github.com/scipopt/scip/archive/refs/tags/v920.tar.gz", + "integrity": "sha256-oi3CD0Tpm/7AcYif1a8r/FfErxS3bXd9ExIAZhY0b3w=", + "strip_prefix": "scip-920", + "patches": { + "add_buildflags_h.patch": "sha256-f6Bf1J/VjcuwS4tXyinxJERaM11KZPkMhnCKiLdknMc=", + "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=" + }, + "patch_strip": 1, + "overlay": { + "BUILD.bazel": "sha256-8XF/30snfL/D8TQOINwZIF0HHAa2TmOFQZrZSEtAfjA=", + "MODULE.bazel": "sha256-xfjr76f+STrnQS9SaAgRhyKKMM85GbDZg7vQU/LDLX8=" + } +} diff --git a/modules/scip/metadata.json b/modules/scip/metadata.json index e6b2759e6c7..9011b8a72c5 100644 --- a/modules/scip/metadata.json +++ b/modules/scip/metadata.json @@ -2,8 +2,8 @@ "homepage": "https://github.com/scipopt/scip", "maintainers": [ { - "email": "bcr-maintainers@bazel.build", - "name": "No Maintainer Specified" + "email": "lperron@google.com", + "name": "Laurent Perron" } ], "repository": [ @@ -13,7 +13,8 @@ "8.1.0", "9.2.0", "9.2.0.bcr.1", - "9.2.0.bcr.2" + "9.2.0.bcr.2", + "9.2.0.bcr.3" ], "yanked_versions": {} }