From 931536da04a219666a574e546c6149c50d130439 Mon Sep 17 00:00:00 2001 From: Corentin Le Molgat Date: Wed, 5 Nov 2025 11:27:08 +0100 Subject: [PATCH] cmake: update re2 and highs --- Dependencies.txt | 4 +- cmake/dependencies/CMakeLists.txt | 8 +- patches/highs-v1.11.0.patch | 276 ------------------ ...-2024-07-02.patch => re2-2025-08-12.patch} | 6 +- 4 files changed, 8 insertions(+), 286 deletions(-) delete mode 100644 patches/highs-v1.11.0.patch rename patches/{re2-2024-07-02.patch => re2-2025-08-12.patch} (81%) diff --git a/Dependencies.txt b/Dependencies.txt index eca87b0516..7e6880fa81 100644 --- a/Dependencies.txt +++ b/Dependencies.txt @@ -2,14 +2,14 @@ ZLIB=1.3.1 abseil-cpp=20250814.1 Protobuf=v32.0 Eigen=3.4.0 -Re2=2024-07-02 +Re2=2025-08-12 CoinUtils=2.11.12 Osi=0.108.11 Clp=1.17.10 Cgl=0.60.9 Cbc=2.10.12 GLPK=5.0 -HiGHS=v1.11.0 +HiGHS=v1.12.0 Scip=v923 # Python pybind11=v2.13.6 diff --git a/cmake/dependencies/CMakeLists.txt b/cmake/dependencies/CMakeLists.txt index a1b2403ff7..67df638983 100644 --- a/cmake/dependencies/CMakeLists.txt +++ b/cmake/dependencies/CMakeLists.txt @@ -168,11 +168,11 @@ if(BUILD_re2) FetchContent_Declare( re2 GIT_REPOSITORY "https://github.com/google/re2.git" - GIT_TAG "2024-07-02" + GIT_TAG "2025-08-12" GIT_SHALLOW TRUE UPDATE_COMMAND git reset --hard PATCH_COMMAND git apply --ignore-whitespace - "${CMAKE_CURRENT_LIST_DIR}/../../patches/re2-2024-07-02.patch" + "${CMAKE_CURRENT_LIST_DIR}/../../patches/re2-2025-08-12.patch" ) set(RE2_BUILD_TESTING OFF) FetchContent_MakeAvailable(re2) @@ -303,11 +303,9 @@ if(BUILD_HIGHS) FetchContent_Declare( highs GIT_REPOSITORY "https://github.com/ERGO-Code/HiGHS.git" - GIT_TAG "v1.11.0" + GIT_TAG "v1.12.0" GIT_SHALLOW TRUE UPDATE_COMMAND git reset --hard - PATCH_COMMAND git apply --ignore-whitespace - "${CMAKE_CURRENT_LIST_DIR}/../../patches/highs-v1.11.0.patch" ) set(CI OFF) # disable CI tests set(BUILD_EXAMPLES OFF) diff --git a/patches/highs-v1.11.0.patch b/patches/highs-v1.11.0.patch deleted file mode 100644 index ce02101076..0000000000 --- a/patches/highs-v1.11.0.patch +++ /dev/null @@ -1,276 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 661aa078..2606e08d 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -57,7 +57,7 @@ endif() - # message("CMAKE_CXX_COMPILER_ID is ${CMAKE_CXX_COMPILER_ID}") - if (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") - message(STATUS "Compiler is IntelLLVM") -- if (CMAKE_HOST_WIN32 AND CMAKE_VERSION VERSION_LESS "3.23.0") -+ if (CMAKE_HOST_WIN32 AND CMAKE_VERSION VERSION_LESS "3.23.0") - message(FATAL_ERROR "Need at least CMake 3.23 for IntelLLVM support of IntelDPCPP package on Windows") - elseif(CMAKE_VERSION VERSION_LESS "3.23.0") - message(FATAL_ERROR "CMake 3.20.5 is the minimum recommended for IntelLLVM on Linux") -@@ -121,9 +121,9 @@ endif() - - option(HIGHS_COVERAGE "Activate the code coverage compilation" OFF) - --# Address | Thread | Leak -+# Address | Thread | Leak - # Linux atm --# Only Debug is theted atm -+# Only Debug is theted atm - # See below for RelWithDeb info, todo test wip - set(DEBUG_MEMORY "Off" CACHE STRING "Sanitizers") - -@@ -137,7 +137,7 @@ message(STATUS "Build pdlp with GPU: ${CUPDLP_GPU}") - option(CUPDLP_FIND_CUDA "Build pdlp with GPU" OFF) - message(STATUS "Use FindCUDAConf: ${CUPDLP_FIND_CUDA}") - --if(CUPDLP_GPU AND CMAKE_VERSION VERSION_LESS "3.25.0") -+if(CUPDLP_GPU AND CMAKE_VERSION VERSION_LESS "3.25.0") - message("CUPDLP FindCUDAConf requires CMake version minumum 3.24. Please use a higher version of CMake.") - endif() - -@@ -158,11 +158,11 @@ if (CUPDLP_GPU) - # With FindCUDAConf.cmake - # Need to have the CUDA_HOME environment variable set. - include(FindCUDAConf) -- else() -+ else() - # Without FindCUDAConf.cmake - enable_language(CUDA) - find_package(CUDAToolkit REQUIRED) -- -+ - set(CUDA_LIBRARY-NOTFOUND, OFF) - set(CUDA_LIBRARY CUDA::cudart CUDA::cublas CUDA::cusparse) - endif() -@@ -205,7 +205,7 @@ if (BUILD_CXX) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) -- # for multi-config build system (e.g. xcode) -+ # for multi-config build system (e.g. xcode) - foreach(OutputConfig IN LISTS CMAKE_CONFIGURATION_TYPES) - string(TOUPPER ${OutputConfig} OUTPUTCONFIG) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/${OutputConfig}/${CMAKE_INSTALL_LIBDIR}) -@@ -244,14 +244,14 @@ if (BUILD_CXX) - option(STDCALL "Build highs with the __stdcall convention" OFF) - endif() - -- if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR -- CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR -- CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") -+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR -+ CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR -+ CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -- # elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") -+ # elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - # not recognised by cl -- # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++11") -- endif() -+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++11") -+ endif() - - # Basic type - include(CMakePushCheckState) -@@ -275,7 +275,7 @@ if (BUILD_CXX) - check_type_size("int *" SIZEOF_INT_P LANGUAGE CXX) - message(STATUS "Found int * size: ${SIZEOF_INT_P}") - cmake_pop_check_state() -- -+ - # Use current CMAKE_C_FLAGS and CMAKE_CXX_FLAGS when checking for IPO support, - # instead of defaults: https://cmake.org/cmake/help/latest/policy/CMP0138.html - if(MSVC AND BUILD_SHARED_LIBS) -@@ -293,7 +293,7 @@ if (BUILD_CXX) - set(ipo_supported NO) - message(STATUS "IPO / LTO not currently supported building HiGHS on MinGW") - else() -- if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") -+ if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") - cmake_policy(SET CMP0138 NEW) - endif() - -@@ -371,19 +371,8 @@ else() - HIGHS_HAVE_BUILTIN_CLZ) - endif() - --set(CMAKE_MACOSX_RPATH ON) -- --if (BUILD_DOTNET) -- set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) --else() -- # use, i.e. don't skip the full RPATH for the build tree -- set(CMAKE_SKIP_BUILD_RPATH FALSE) -- -- # when building, don't use the install RPATH already -- # (but later on when installing) -- set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) -- set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) --endif() -+# set the correct rpath for OS X -+set(CMAKE_MACOSX_RPATH TRUE) - - if(NOT FAST_BUILD) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${HIGHS_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) -@@ -428,7 +417,7 @@ endif() - - # For debug of cuda locally - --# does not work with older CMake -+# does not work with older CMake - # add_compile_options("$<$,$>:-G>") - - # add_compile_options("$<$:-G>") -@@ -453,7 +442,7 @@ if(MSVC) - add_compile_options("$<$:-D_CRT_SECURE_NO_WARNINGS>") - add_compile_options("$<$:/MP>") - -- # Try to split large pdb files into objects. -+ # Try to split large pdb files into objects. - # https://github.com/tensorflow/tensorflow/issues/31610 - # add_compile_options("/Z7") - # add_link_options("/DEBUG:FASTLINK") -@@ -611,11 +600,11 @@ if(FAST_BUILD AND HIGHS_COVERAGE) - message(STATUS "Building in coverage mode") - - # Enable coverage flags -- add_compile_options(-O0) -- add_compile_options(--coverage) -- add_compile_options(-fprofile-update=atomic) -+ add_compile_options(-O0) -+ add_compile_options(--coverage) -+ add_compile_options(-fprofile-update=atomic) - -- add_link_options(-O0) -+ add_link_options(-O0) - add_link_options(--coverage) # Ensure coverage data is linked correctly - - find_program(GCOV_PATH gcov) -diff --git a/highs/CMakeLists.txt b/highs/CMakeLists.txt -index 50301433..f7b982fb 100644 ---- a/highs/CMakeLists.txt -+++ b/highs/CMakeLists.txt -@@ -1,7 +1,7 @@ - if (NOT BUILD_CXX) - return() - endif() -- -+ - # Define library. - include(sources) - set(sources ${highs_sources} ${cupdlp_sources} ${ipx_sources} ${basiclu_sources}) -@@ -43,7 +43,7 @@ if(NOT FAST_BUILD) - set_target_properties(libhighs PROPERTIES - OUTPUT_NAME "highs" - PDB_NAME "libhighs" -- MACOSX_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") -+ ) - - if(ZLIB AND ZLIB_FOUND) - target_link_libraries(libhighs ZLIB::ZLIB) -@@ -51,8 +51,11 @@ if(NOT FAST_BUILD) - endif() - - # set the install rpath to the installed destination -- set_target_properties(libhighs PROPERTIES INSTALL_RPATH -- "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") -+ if(APPLE) -+ set_target_properties(libhighs PROPERTIES INSTALL_RPATH "@loader_path") -+ elseif (UNIX) -+ set_target_properties(libhighs PROPERTIES INSTALL_RPATH "$ORIGIN") -+ endif() - - # install the header files of highs - foreach(file ${headers}) -@@ -84,7 +87,7 @@ if(NOT FAST_BUILD) - # target_compile_options(libipx PRIVATE "-Wno-sign-compare") - # target_compile_options(libipx PRIVATE "-Wno-logical-op-parentheses") - endif() -- -+ - install(TARGETS libhighs EXPORT highs-targets - LIBRARY - ARCHIVE -@@ -150,8 +153,8 @@ else() - - - target_sources(highs PRIVATE ${sources} ${headers} ${win_version_file}) -- -- # Optional Cuda -+ -+ # Optional Cuda - if (CUPDLP_GPU) - - target_include_directories(highs PUBLIC "$") -@@ -164,7 +167,7 @@ else() - else() - target_link_libraries(highs cudalin ${CUDA_LIBRARY} m) - endif() -- -+ - set_target_properties(highs PROPERTIES CUDA_SEPARABLE_COMPILATION ON) - - endif() -@@ -221,7 +224,7 @@ else() - ) - target_link_libraries(highs ZLIB::ZLIB) - endif() -- -+ - # install the header files of highs - foreach(file ${headers}) - get_filename_component(dir ${file} DIRECTORY) -@@ -236,9 +239,9 @@ else() - - # target_compile_options(highs PRIVATE "-Wall") - # target_compile_options(highs PRIVATE "-Wunused") -- -+ - if (UNIX) -- if ( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") -+ if ( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - target_compile_options(highs PRIVATE "-Wall") - target_compile_options(highs PRIVATE "-Wreturn-type") - target_compile_options(highs PRIVATE "-Wmissing-declarations") -@@ -248,7 +251,7 @@ else() - target_compile_options(highs PRIVATE "-Wno-comment") - target_compile_options(highs PRIVATE "-Wno-unused-label") - -- if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") -+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - target_compile_options(highs PRIVATE "-Wno-unused-lambda-capture") - endif() - -@@ -267,7 +270,7 @@ else() - endif() - - if (BUILD_DOTNET) -- -+ - # see: https://docs.microsoft.com/en-us/dotnet/core/rid-catalog - if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64)") - set(DOTNET_PLATFORM arm64) -@@ -298,8 +301,8 @@ else() - set(TARGET_FILE_NAME "highs.dll") - endif() - -- add_custom_command(TARGET highs POST_BUILD -- COMMAND "${CMAKE_COMMAND}" -E copy -+ add_custom_command(TARGET highs POST_BUILD -+ COMMAND "${CMAKE_COMMAND}" -E copy - "$" - ${DOTNET_PROJECT_DIR}/runtimes/${DOTNET_RID}/native/${TARGET_FILE_NAME} - COMMENT "Copying to output directory") -@@ -318,7 +321,7 @@ if(FORTRAN_FOUND) - target_link_libraries(FortranHighs PUBLIC highs) - endif() - -- install(TARGETS FortranHighs -+ install(TARGETS FortranHighs - LIBRARY - ARCHIVE - RUNTIME diff --git a/patches/re2-2024-07-02.patch b/patches/re2-2025-08-12.patch similarity index 81% rename from patches/re2-2024-07-02.patch rename to patches/re2-2025-08-12.patch index 73f73a69c1..982dde83af 100644 --- a/patches/re2-2024-07-02.patch +++ b/patches/re2-2025-08-12.patch @@ -1,11 +1,11 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index bdac5af..cedaf6e 100644 +index 81b4af2..b1ffaac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -131,6 +131,13 @@ set(RE2_HEADERS +@@ -140,6 +140,13 @@ set(RE2_HEADERS add_library(re2 ${RE2_SOURCES}) - target_compile_features(re2 PUBLIC cxx_std_14) + target_compile_features(re2 PUBLIC ${RE2_CXX_VERSION}) +if(APPLE) + set_target_properties(re2 PROPERTIES + INSTALL_RPATH "@loader_path")