Provide optional METIS support

* Split `CERES_NO_METIS` into two defines: `CERES_NO_PARTITION` and
  `CERES_NO_METIS`. The former refers to METIS support in SuiteSparse,
  the latter to the Eigen's MetisSupport module. This enables the use of
  sparse matrix reordering independent from SuiteSparse.
* Run Linux, macOS, and macOS Github workflows with METIS enabled
  SuiteSparse.

Fixes #808

Change-Id: I5076b7e1268d32cc3e7e56650edcbaf7fb3b59ce
This commit is contained in:
Sergiu Deitsch
2022-05-15 22:26:18 +02:00
committed by Sameer Agarwal
parent f11c256265
commit 0c88301e66
16 changed files with 123 additions and 38 deletions
+1
View File
@@ -46,6 +46,7 @@ jobs:
libgflags-dev \
libgoogle-glog-dev \
liblapack-dev \
libmetis-dev \
libsuitesparse-dev \
ninja-build
+1
View File
@@ -48,6 +48,7 @@ jobs:
gflags \
glog \
google-benchmark \
metis \
ninja \
suite-sparse
+2 -2
View File
@@ -92,12 +92,12 @@ jobs:
uses: actions/cache@v2
with:
path: suitesparse/
key: ${{matrix.msvc}}-suitesparse-5.11.0-cmake.2-${{matrix.arch}}-${{matrix.build_type}}-${{matrix.lib}}
key: ${{matrix.msvc}}-suitesparse-5.12.0-cmake.3-${{matrix.arch}}-${{matrix.build_type}}-${{matrix.lib}}
- name: Download SuiteSparse
if: steps.cache-suitesparse.outputs.cache-hit != 'true'
run: |
(New-Object System.Net.WebClient).DownloadFile("https://github.com/sergiud/SuiteSparse/releases/download/5.11.0-cmake.2/SuiteSparse-5.11.0-cmake.2-${{matrix.marker}}-Win64-${{matrix.build_type}}-${{matrix.lib}}-gpl.zip", "suitesparse.zip");
(New-Object System.Net.WebClient).DownloadFile("https://github.com/sergiud/SuiteSparse/releases/download/5.12.0-cmake.3/SuiteSparse-5.12.0-cmake.3-${{matrix.marker}}-Win64-${{matrix.build_type}}-${{matrix.lib}}-gpl-metis.zip", "suitesparse.zip");
Expand-Archive -Path suitesparse.zip -DestinationPath ${{github.workspace}}/suitesparse;
- name: Cache Eigen