From d47f599ac20f07031fbcfe2ac8f41cd424c94a7f Mon Sep 17 00:00:00 2001 From: Laurent Perron Date: Wed, 9 Apr 2025 15:18:29 +0200 Subject: [PATCH] bump .NET to 8.0; remove LP_PARSER option --- .../amd64_linux_cmake_coinor_off.yml | 4 +- .../workflows/amd64_linux_cmake_dotnet.yml | 4 +- .../amd64_linux_cmake_no_lp_parser.yml | 44 ------------------- .../workflows/amd64_linux_cmake_scip_off.yml | 4 +- .../workflows/amd64_macos_cmake_dotnet.yml | 4 +- .../workflows/amd64_windows_cmake_dotnet.yml | 4 +- .../workflows/arm64_macos_cmake_dotnet.yml | 4 +- CMakeLists.txt | 8 +--- cmake/cpp.cmake | 15 +++---- cmake/glop.cmake | 15 +++---- cmake/ortoolsConfig.cmake.in | 8 ++-- ortools/linear_solver/BUILD.bazel | 1 - ortools/linear_solver/java/BUILD.bazel | 1 - .../python/model_builder_helper.cc | 9 ---- ortools/linear_solver/solve.cc | 4 -- ortools/linear_solver/wrappers/BUILD.bazel | 1 - .../wrappers/model_builder_helper.cc | 4 -- .../wrappers/model_builder_helper.h | 2 - ortools/lp_data/BUILD.bazel | 1 - ortools/lp_data/lp_parser.cc | 5 --- ortools/lp_data/lp_parser.h | 4 -- 21 files changed, 28 insertions(+), 118 deletions(-) delete mode 100644 .github/workflows/amd64_linux_cmake_no_lp_parser.yml diff --git a/.github/workflows/amd64_linux_cmake_coinor_off.yml b/.github/workflows/amd64_linux_cmake_coinor_off.yml index cf31da34aa..ccf09941d1 100644 --- a/.github/workflows/amd64_linux_cmake_coinor_off.yml +++ b/.github/workflows/amd64_linux_cmake_coinor_off.yml @@ -29,10 +29,10 @@ jobs: - name: Check swig run: swig -version # Install .NET SDKs - - name: Setup .NET 6.0 + - name: Setup .NET 8.0 uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.0.x + dotnet-version: 8.0.x - name: Check dotnet run: dotnet --info # Install Java diff --git a/.github/workflows/amd64_linux_cmake_dotnet.yml b/.github/workflows/amd64_linux_cmake_dotnet.yml index efeb1a1787..28ba3e5a25 100644 --- a/.github/workflows/amd64_linux_cmake_dotnet.yml +++ b/.github/workflows/amd64_linux_cmake_dotnet.yml @@ -18,10 +18,10 @@ jobs: run: | sudo apt install -y swig swig -version - - name: Setup .NET 6.0 + - name: Setup .NET 8.0 uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.0.x + dotnet-version: 8.0.x - name: Check dotnet run: dotnet --info - name: Check CMake diff --git a/.github/workflows/amd64_linux_cmake_no_lp_parser.yml b/.github/workflows/amd64_linux_cmake_no_lp_parser.yml deleted file mode 100644 index 6c03f92f09..0000000000 --- a/.github/workflows/amd64_linux_cmake_no_lp_parser.yml +++ /dev/null @@ -1,44 +0,0 @@ -# ref: https://github.com/actions/runner-images -name: amd64 Linux CMake C++ LP_PARSER OFF - -on: [push, pull_request, workflow_dispatch] - -concurrency: - group: ${{github.workflow}}-${{github.ref}} - cancel-in-progress: true - -# Building using the github runner environement directly. -jobs: - native: - name: amd64•Linux•CMake•LP_PARSER=OFF - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Check cmake - run: cmake --version - - name: Configure - run: > - cmake -S. -Bbuild - -DCMAKE_BUILD_TYPE=Release - -DBUILD_DEPS=ON - -DBUILD_LP_PARSER=OFF - - name: Build - run: > - cmake --build build - --config Release - --target all - -v -j2 - - name: Test - run: > - CTEST_OUTPUT_ON_FAILURE=1 - cmake --build build - --config Release - --target test - -v - - name: Install - run: > - cmake --build build - --config Release - --target install - -v - -- DESTDIR=install diff --git a/.github/workflows/amd64_linux_cmake_scip_off.yml b/.github/workflows/amd64_linux_cmake_scip_off.yml index 0701dcad8b..0cf8a714ed 100644 --- a/.github/workflows/amd64_linux_cmake_scip_off.yml +++ b/.github/workflows/amd64_linux_cmake_scip_off.yml @@ -29,10 +29,10 @@ jobs: - name: Check swig run: swig -version # Install .NET SDKs - - name: Setup .NET 6.0 + - name: Setup .NET 8.0 uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.0.x + dotnet-version: 8.0.x - name: Check dotnet run: dotnet --info # Install Java diff --git a/.github/workflows/amd64_macos_cmake_dotnet.yml b/.github/workflows/amd64_macos_cmake_dotnet.yml index 85921169c9..9898badc46 100644 --- a/.github/workflows/amd64_macos_cmake_dotnet.yml +++ b/.github/workflows/amd64_macos_cmake_dotnet.yml @@ -25,10 +25,10 @@ jobs: run: | brew install swig swig -version - - name: Setup .NET 6.0 + - name: Setup .NET 8.0 uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.0.x + dotnet-version: 8.0.x - name: Check dotnet run: dotnet --info - name: Check CMake diff --git a/.github/workflows/amd64_windows_cmake_dotnet.yml b/.github/workflows/amd64_windows_cmake_dotnet.yml index ac4363ee1f..dca80f9213 100644 --- a/.github/workflows/amd64_windows_cmake_dotnet.yml +++ b/.github/workflows/amd64_windows_cmake_dotnet.yml @@ -22,10 +22,10 @@ jobs: CTEST_OUTPUT_ON_FAILURE: 1 steps: - uses: actions/checkout@v4 - - name: Setup .NET 6.0 + - name: Setup .NET 8.0 uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.0.x + dotnet-version: 8.0.x - name: Check dotnet run: dotnet --info - name: Check CMake diff --git a/.github/workflows/arm64_macos_cmake_dotnet.yml b/.github/workflows/arm64_macos_cmake_dotnet.yml index c9a29ab727..c3b2f1c934 100644 --- a/.github/workflows/arm64_macos_cmake_dotnet.yml +++ b/.github/workflows/arm64_macos_cmake_dotnet.yml @@ -25,10 +25,10 @@ jobs: run: | brew install swig swig -version - - name: Setup .NET 6.0 + - name: Setup .NET 8.0 uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.0.x + dotnet-version: 8.0.x - name: Check dotnet run: dotnet --info - name: Check CMake diff --git a/CMakeLists.txt b/CMakeLists.txt index bf3e5dbb23..efefbaa212 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,10 +123,6 @@ include(CMakeDependentOption) CMAKE_DEPENDENT_OPTION(BUILD_FLATZINC "Build flatzinc" ON "BUILD_CXX" OFF) message(STATUS "Build Flatzinc: ${BUILD_FLATZINC}") -## LP Parser -CMAKE_DEPENDENT_OPTION(BUILD_LP_PARSER "Build lp_parser" ON "BUILD_CXX" OFF) -message(STATUS "Build LP Parser: ${BUILD_LP_PARSER}") - ## MathOpt CMAKE_DEPENDENT_OPTION(BUILD_MATH_OPT "Build the MATH_OPT" ON "BUILD_CXX" OFF) message(STATUS "Build MathOpt: ${BUILD_MATH_OPT}") @@ -382,13 +378,13 @@ if(BUILD_DOTNET) endif() message(STATUS ".Net: Use .Net Core 3.1 LTS support: ${USE_DOTNET_CORE_31}") - option(USE_DOTNET_6 "Use .Net 6.0 LTS support" ON) + option(USE_DOTNET_6 "Use .Net 6.0 LTS support" OFF) message(STATUS ".Net: Use .Net 6.0 LTS support: ${USE_DOTNET_6}") option(USE_DOTNET_7 "Use .Net 7.0 support" OFF) message(STATUS ".Net: Use .Net 7.0 support: ${USE_DOTNET_7}") - option(USE_DOTNET_8 "Use .Net 8.0 LTS support" OFF) + option(USE_DOTNET_8 "Use .Net 8.0 LTS support" ON) message(STATUS ".Net: Use .Net 8.0 support: ${USE_DOTNET_8}") option(USE_DOTNET_9 "Use .Net 9.0 support" OFF) diff --git a/cmake/cpp.cmake b/cmake/cpp.cmake index 9acfea8745..c3fdb9ce8f 100644 --- a/cmake/cpp.cmake +++ b/cmake/cpp.cmake @@ -53,9 +53,6 @@ if(MSVC AND BUILD_SHARED_LIBS) endif() # Optional built-in components -if(BUILD_LP_PARSER) - list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "USE_LP_PARSER") -endif() if(BUILD_MATH_OPT) list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "USE_MATH_OPT") set(MATH_OPT_DIR math_opt) @@ -671,13 +668,11 @@ install( "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" COMPONENT Devel) -if(BUILD_LP_PARSER) - install( - FILES - "${PROJECT_SOURCE_DIR}/cmake/Findre2.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/modules" - COMPONENT Devel) -endif() +install( + FILES + "${PROJECT_SOURCE_DIR}/cmake/Findre2.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/modules" + COMPONENT Devel) if(USE_COINOR) install( FILES diff --git a/cmake/glop.cmake b/cmake/glop.cmake index dc0bb51c0f..2cb282f109 100644 --- a/cmake/glop.cmake +++ b/cmake/glop.cmake @@ -82,6 +82,8 @@ target_sources(glop PRIVATE ortools/base/accurate_sum.h ortools/base/base_export.h ortools/base/basictypes.h + ortools/base/case.cc + ortools/base/case.h ortools/base/commandlineflags.h ortools/base/file.cc ortools/base/file.h @@ -130,6 +132,8 @@ target_sources(glop PRIVATE ortools/lp_data/lp_data.h ortools/lp_data/lp_data_utils.cc ortools/lp_data/lp_data_utils.h + ortools/lp_data/lp_parser.cc + ortools/lp_data/lp_parser.h ortools/lp_data/lp_print_utils.cc ortools/lp_data/lp_print_utils.h ortools/lp_data/lp_types.cc @@ -145,8 +149,8 @@ target_sources(glop PRIVATE ortools/lp_data/sparse.cc ortools/lp_data/sparse.h ortools/lp_data/sparse_column.cc - ortools/port/sysinfo.h ortools/port/sysinfo.cc + ortools/port/sysinfo.h ortools/util/file_util.cc ortools/util/file_util.h ortools/util/fp_utils.cc @@ -160,14 +164,7 @@ target_sources(glop PRIVATE ortools/util/strong_integers.h ortools/util/time_limit.cc ortools/util/time_limit.h - ) -if(BUILD_LP_PARSER) - target_sources(glop PRIVATE - ortools/base/case.cc - ortools/base/case.h - ortools/lp_data/lp_parser.cc - ortools/lp_data/lp_parser.h) -endif() +) if(WIN32) list(APPEND GLOP_COMPILE_DEFINITIONS "__WIN32__") diff --git a/cmake/ortoolsConfig.cmake.in b/cmake/ortoolsConfig.cmake.in index b658904e7d..30d294cd1c 100644 --- a/cmake/ortoolsConfig.cmake.in +++ b/cmake/ortoolsConfig.cmake.in @@ -34,11 +34,9 @@ if(NOT TARGET protobuf::libprotobuf) endif() endif() -if(@BUILD_LP_PARSER@) - # re2 may not provide a CMake config files - if(NOT TARGET re2::re2) - find_dependency(re2 REQUIRED) - endif() +# re2 may not provide a CMake config files +if(NOT TARGET re2::re2) + find_dependency(re2 REQUIRED) endif() if(@USE_COINOR@) diff --git a/ortools/linear_solver/BUILD.bazel b/ortools/linear_solver/BUILD.bazel index 3f21070aee..f561c458c9 100644 --- a/ortools/linear_solver/BUILD.bazel +++ b/ortools/linear_solver/BUILD.bazel @@ -377,7 +377,6 @@ cc_library( cc_binary( name = "solve", srcs = ["solve.cc"], - defines = ["USE_LP_PARSER"], deps = [ ":linear_solver", ":linear_solver_cc_proto", diff --git a/ortools/linear_solver/java/BUILD.bazel b/ortools/linear_solver/java/BUILD.bazel index a672849d35..cad9cc2a3a 100644 --- a/ortools/linear_solver/java/BUILD.bazel +++ b/ortools/linear_solver/java/BUILD.bazel @@ -26,7 +26,6 @@ ortools_java_wrap_cc( "//ortools/base:base_swig", "//ortools/util/java:vector_swig", ], - swig_opt = "-DUSE_LP_PARSER", visibility = ["//visibility:public"], deps = [ "//ortools/linear_solver/wrappers:model_builder_helper", diff --git a/ortools/linear_solver/python/model_builder_helper.cc b/ortools/linear_solver/python/model_builder_helper.cc index b2c27bf2ee..f085b0fe6a 100644 --- a/ortools/linear_solver/python/model_builder_helper.cc +++ b/ortools/linear_solver/python/model_builder_helper.cc @@ -619,19 +619,10 @@ PYBIND11_MODULE(model_builder_helper, m) { py::arg("mps_string")) .def("import_from_mps_file", &ModelBuilderHelper::ImportFromMpsFile, py::arg("mps_file")) -#if defined(USE_LP_PARSER) .def("import_from_lp_string", &ModelBuilderHelper::ImportFromLpString, py::arg("lp_string")) .def("import_from_lp_file", &ModelBuilderHelper::ImportFromLpFile, py::arg("lp_file")) -#else - .def("import_from_lp_string", [](const std::string& lp_string) { - LOG(INFO) << "Parsing LP string is not compiled in"; - }) - .def("import_from_lp_file", [](const std::string& lp_file) { - LOG(INFO) << "Parsing LP file is not compiled in"; - }) -#endif .def( "fill_model_from_sparse_data", [](ModelBuilderHelper* helper, diff --git a/ortools/linear_solver/solve.cc b/ortools/linear_solver/solve.cc index aca36f20d5..3d77bb37e9 100644 --- a/ortools/linear_solver/solve.cc +++ b/ortools/linear_solver/solve.cc @@ -133,15 +133,11 @@ MPModelRequest ReadMipModel(const std::string& input) { MPModelRequest request_proto; MPModelProto model_proto; if (absl::EndsWith(input, ".lp")) { -#if defined(USE_LP_PARSER) std::string data; CHECK_OK(file::GetContents(input, &data, file::Defaults())); absl::StatusOr result = ModelProtoFromLpFormat(data); CHECK_OK(result); model_proto = std::move(result).value(); -#else // !defined(USE_LP_PARSER) - LOG(FATAL) << "Support for parsing LP format is not compiled in."; -#endif // !defined(USE_LP_PARSER) } else if (absl::EndsWith(input, ".mps") || absl::EndsWith(input, ".mps.gz")) { QCHECK_OK(glop::MPSReader().ParseFile(input, &model_proto)) diff --git a/ortools/linear_solver/wrappers/BUILD.bazel b/ortools/linear_solver/wrappers/BUILD.bazel index 6375e8486b..eb3bb8db25 100644 --- a/ortools/linear_solver/wrappers/BUILD.bazel +++ b/ortools/linear_solver/wrappers/BUILD.bazel @@ -33,7 +33,6 @@ cc_library( "-DUSE_HIGHS", "-DUSE_PDLP", "-DUSE_SCIP", - "-DUSE_LP_PARSER", ], visibility = ["//visibility:public"], deps = [ diff --git a/ortools/linear_solver/wrappers/model_builder_helper.cc b/ortools/linear_solver/wrappers/model_builder_helper.cc index 592a48c1a4..def8d92952 100644 --- a/ortools/linear_solver/wrappers/model_builder_helper.cc +++ b/ortools/linear_solver/wrappers/model_builder_helper.cc @@ -48,9 +48,7 @@ #if defined(USE_PDLP) #include "ortools/linear_solver/proto_solver/pdlp_proto_solver.h" #endif // defined(USE_PDLP) -#if defined(USE_LP_PARSER) #include "ortools/lp_data/lp_parser.h" -#endif // defined(USE_LP_PARSER) #include "ortools/lp_data/mps_reader.h" #include "ortools/xpress/environment.h" @@ -121,7 +119,6 @@ bool ModelBuilderHelper::ImportFromMpsFile(const std::string& mps_file) { return true; } -#if defined(USE_LP_PARSER) bool ModelBuilderHelper::ImportFromLpString(const std::string& lp_string) { absl::StatusOr model_or = ModelProtoFromLpFormat(lp_string); if (!model_or.ok()) return false; @@ -139,7 +136,6 @@ bool ModelBuilderHelper::ImportFromLpFile(const std::string& lp_file) { model_ = model_or.value(); return true; } -#endif // #if defined(USE_LP_PARSER) const MPModelProto& ModelBuilderHelper::model() const { return model_; } diff --git a/ortools/linear_solver/wrappers/model_builder_helper.h b/ortools/linear_solver/wrappers/model_builder_helper.h index 8ccabdd4b2..7c6e4f026f 100644 --- a/ortools/linear_solver/wrappers/model_builder_helper.h +++ b/ortools/linear_solver/wrappers/model_builder_helper.h @@ -382,10 +382,8 @@ class ModelBuilderHelper { bool ImportFromMpsString(const std::string& mps_string); bool ImportFromMpsFile(const std::string& mps_file); -#if defined(USE_LP_PARSER) bool ImportFromLpString(const std::string& lp_string); bool ImportFromLpFile(const std::string& lp_file); -#endif // defined(USE_LP_PARSER) const MPModelProto& model() const; MPModelProto* mutable_model(); diff --git a/ortools/lp_data/BUILD.bazel b/ortools/lp_data/BUILD.bazel index 7761ee49d1..5cfd838912 100644 --- a/ortools/lp_data/BUILD.bazel +++ b/ortools/lp_data/BUILD.bazel @@ -240,7 +240,6 @@ cc_library( srcs = ["lp_parser.cc"], hdrs = ["lp_parser.h"], copts = SAFE_FP_CODE, - defines = ["USE_LP_PARSER"], deps = [ ":base", ":lp_data", diff --git a/ortools/lp_data/lp_parser.cc b/ortools/lp_data/lp_parser.cc index 42db79de0f..2aa6879050 100644 --- a/ortools/lp_data/lp_parser.cc +++ b/ortools/lp_data/lp_parser.cc @@ -33,11 +33,8 @@ #include "ortools/lp_data/lp_data.h" #include "ortools/lp_data/lp_types.h" #include "ortools/lp_data/proto_utils.h" -#if defined(USE_LP_PARSER) #include "re2/re2.h" -#endif // defined(USE_LP_PARSER) -#if defined(USE_LP_PARSER) namespace operations_research { namespace glop { @@ -465,5 +462,3 @@ absl::StatusOr ModelProtoFromLpFormat(absl::string_view model) { } } // namespace operations_research - -#endif // defined(USE_LP_PARSER) diff --git a/ortools/lp_data/lp_parser.h b/ortools/lp_data/lp_parser.h index 2a9e10d014..6248096edf 100644 --- a/ortools/lp_data/lp_parser.h +++ b/ortools/lp_data/lp_parser.h @@ -74,8 +74,6 @@ #ifndef OR_TOOLS_LP_DATA_LP_PARSER_H_ #define OR_TOOLS_LP_DATA_LP_PARSER_H_ -#if defined(USE_LP_PARSER) - #include #include @@ -125,6 +123,4 @@ absl::StatusOr ParseConstraint(absl::string_view constraint); } // namespace glop } // namespace operations_research -#endif // defined(USE_LP_PARSER) - #endif // OR_TOOLS_LP_DATA_LP_PARSER_H_