modsim / CADET

A modular, fast, and accurate simulation framework for (column) liquid chromatography
GNU General Public License v3.0
50 stars 24 forks source link

macOS build fail #145

Closed avasyanin closed 10 months ago

avasyanin commented 10 months ago

Current version failed to build on macOS Ventura 13.5.1 at M1 with the following logs:

Looks like build manual is a bit outdated. I used the following CMake parameters:

% cmake -DCMAKE_INSTALL_PREFIX=$HOME/src/cadet -DCMAKE_CXX_FLAGS="-std=c++17" -DENABLE_TESTS=OFF ..
-- Found Git: /opt/homebrew/bin/git (found version "2.41.0")
-- Get version from file
-- CADET version: 4.4.0
-- Current git HEAD: GITDIR-NOTFOUND SHA1 GITDIR-NOTFOUND
-- The CXX compiler identification is AppleClang 14.0.3.14030022
-- The C compiler identification is AppleClang 14.0.3.14030022
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Build type: Release (default)
CMake Warning (dev) at CMakeLists.txt:169 (include):
  Policy CMP0120 is not set: The WriteCompilerDetectionHeader module is
  removed.  Run "cmake --help-policy CMP0120" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.27.3/share/cmake/Modules/WriteCompilerDetectionHeader.cmake:380 (message):
  The WriteCompilerDetectionHeader module will be removed by policy CMP0120.
  Projects should be ported away from the module, perhaps by bundling a copy
  of the generated header or using a third-party alternative.
Call Stack (most recent call first):
  CMakeLists.txt:169 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Could NOT find TBB (missing: TBB_INCLUDE_DIRS TBB_LIBRARIES tbb)
-- Looking for sgemm_
-- Looking for sgemm_ - not found
-- Looking for sgemm
-- Looking for sgemm - not found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Looking for dgemm_
-- Looking for dgemm_ - found
-- Found BLAS: /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/System/Library/Frameworks/Accelerate.framework
-- Looking for cheev_
-- Looking for cheev_ - found
-- A library with LAPACK API found.
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of int32_t
-- Check size of int32_t - done
-- Using int32_t for indices
-- Looking for _POSIX_TIMERS
-- Looking for _POSIX_TIMERS - not found
-- HDF5 C compiler wrapper is unable to compile a minimal HDF5 program.
-- Found HDF5: /opt/homebrew/lib/libhdf5.dylib (found version "") found components: C
-- Performing Test HDF5_DONT_NEED_ZLIBS
-- Performing Test HDF5_DONT_NEED_ZLIBS - Success
-- Found SuperLU: TRUE (found version "6.0.0")
-- Found UMFPACK: TRUE (found version "6.1.1")
-- Could NOT find Matlab (missing: Matlab_INCLUDE_DIRS Matlab_MEX_LIBRARY Matlab_MEX_EXTENSION Matlab_MX_LIBRARY MX_LIBRARY LAPACK_LIBRARY) (found version "NOTFOUND")
-- Matlab not found, disabling ENABLE_CADET_MEX
-- AD library: SFAD
-- Added build tools
-- Performing Test COMPILER_SUPPORT_NOEXCEPT_DEFAULTED_MOVE
-- Performing Test COMPILER_SUPPORT_NOEXCEPT_DEFAULTED_MOVE - Success
-- Added LIBCADET module
-- Added CADET-CLI module
-- Added tools

--------------------------- Feature Summary ---------------------------
-- The following features have been enabled:

 * ENABLE_LOGGING, Enables logging
 * ENABLE_THREADING, Use multi-threading
 * ENABLE_GRM_2D, Build 2D general rate model
 * ENABLE_CADET_CLI, Build CADET command line interface
 * ENABLE_CADET_MEX, Build CADET Matlab MEX interface
 * ENABLE_CADET_TOOLS, Build CADET tools
 * ENABLE_PACKAGED_SUNDIALS, Use packaged SUNDIALS code
 * ENABLE_IPO, Enable interprocedural optimization if compiler supports it
 * CMAKE_INSTALL_RPATH_USE_LINK_PATH, Add paths to linker search and installed rpath
 * MATLAB_USE_SYSTEM_LAPACK, Forcefully enables usage of system's LAPACK instead of MATLAB's one
 * MATLAB_ENABLE_THREADING, Enable multi-threading in MATLAB
 * MATLAB_USE_SYSTEM_TBB, Forcefully enables usage of system TBB instead of MATLAB's one

-- The following OPTIONAL packages have been found:

 * Git
 * BLAS
 * Threads

-- The following RECOMMENDED packages have been found:

 * LAPACK
   Solution of dense linear systems
 * HDF5, Hierarchical Data Format 5 (HDF5), <https://www.hdfgroup.org/HDF5>
   File IO
 * SuperLU, Supernodal sparse direct solver, <http://crd-legacy.lbl.gov/~xiaoye/SuperLU/>
   Sparse matrix solver
 * UMFPACK, UMFPACK sparse direct solver from SuiteSparse, <http://faculty.cse.tamu.edu/davis/suitesparse.html>
   Sparse matrix solver

-- The following features have been disabled:

 * ENABLE_BENCHMARK, Enables benchmark mode (fine-grained timing)
 * ENABLE_PLATFORM_TIMER, Use a platform-dependent timer
 * ENABLE_DEBUG_THREADING, Use multi-threading in debug builds
 * ENABLE_SUNDIALS_OPENMP, Prefer OpenMP vector implementation of SUNDIALS if available (for large problems)
 * ENABLE_ANALYTIC_JACOBIAN_CHECK, Enable verification of analytical Jacobian by AD
 * ENABLE_TESTS, Build CADET tests
 * ENABLE_STATIC_LINK_DEPS, Prefer static over dynamic linking of dependencies
 * ENABLE_STATIC_LINK_LAPACK, Prefer static over dynamic linking of LAPACK and BLAS
 * ENABLE_STATIC_LINK_CLI, Prefer static over dynamic linking for CADET CLI
 * MATLAB_FORCE_UMFPACK, Forcefully use MATLAB's UMFPACK as sole sparse solver in MEX interface
 * MATLAB_FORCE_ENABLE_TBB, Forcefully enable usage of MATLAB's TBB library in case system TBB is not compatible and not enforced

-- The following RECOMMENDED packages have not been found:

 * TBB, Threading Building Blocks - Intel's parallelism library for C++, <https://www.threadingbuildingblocks.org/>
   Accelerates computation via multi-threading
 * Matlab, MATLAB Scientific Computing Environment, <https://www.mathworks.com/products/matlab.html>
   Native MATLAB interface

------------------------------- Summary -------------------------------
C++ compiler name: AppleClang at /Library/Developer/CommandLineTools/usr/bin/c++
Build type: Release
Source dir: /Users/alex/tmp/CADET-4.4.0
Binary dir: /Users/alex/tmp/CADET-4.4.0/build
Install dir: /Users/alex/src/cadet
C Flags:
C++ Flags: -std=c++17
IPO enabled: ON
------------------------------- Modules -------------------------------
CADET-CLI: ON
CADET-MEX: OFF
Tools: ON
Tests: OFF
------------------------------- Options -------------------------------
Logging: ON
Benchmark mode: OFF
Platform-dependent timer: OFF
AD library: sfad
2D General Rate Model: ON
Check analytic Jacobian: OFF
----------------------------- Dependencies ----------------------------
Found BLAS: TRUE
  Linker flags
  Libs /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/System/Library/Frameworks/Accelerate.framework
  Underscore suffix TRUE
Found LAPACK: TRUE
  Linker flags
  Libs /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/System/Library/Frameworks/Accelerate.framework;-lm;-ldl
Found TBB: FALSE
Found SUNDIALS: TRUE
  Version 3.2.1
  Packaged
Found SuperLU: TRUE
  Version 6.0.0
  Includes /opt/homebrew/include
  Libs /opt/homebrew/lib/libsuperlu.dylib;/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/System/Library/Frameworks/Accelerate.framework
  Integer type /*! \file
Copyright (c) 2003, The Regents of the University of California, through
Lawrence Berkeley National Laboratory (subject to receipt of any required
approvals from U.S. Dept. of Energy)

All rights reserved.

The source code is distributed under BSD license, see the file License.txt
at the top-level directory.
*/

/*! @file slu_sdefs.h
 * \brief Header file for real operations
 *
 * <pre>
 * -- SuperLU routine (version 4.1) --
 * Univ. of California Berkeley, Xerox Palo Alto Research Center,
 * and Lawrence Berkeley National Lab.
 * November, 2010
 *
 * Global data structures used in LU factorization -
 *
 *   nsuper: #supernodes = nsuper + 1, numbered [0, nsuper].
 *   (xsup,supno): supno[i] is the supernode no to which i belongs;
 *  xsup(s) points to the beginning of the s-th supernode.
 *  e.g.   supno 0 1 2 2 3 3 3 4 4 4 4 4   (n=12)
 *          xsup 0 1 2 4 7 12
 *  Note: dfs will be performed on supernode rep. relative to the new
 *        row pivoting ordering
 *
 *   (xlsub,lsub): lsub[*] contains the compressed subscript of
 *  rectangular supernodes; xlsub[j] points to the starting
 *  location of the j-th column in lsub[*]. Note that xlsub
 *  is indexed by column.
 *  Storage: original row subscripts
 *
 *      During the course of sparse LU factorization, we also use
 *  (xlsub,lsub) for the purpose of symmetric pruning. For each
 *  supernode {s,s+1,...,t=s+r} with first column s and last
 *  column t, the subscript set
 *      lsub[j], j=xlsub[s], .., xlsub[s+1]-1
 *  is the structure of column s (i.e. structure of this supernode).
 *  It is used for the storage of numerical values.
 *  Furthermore,
 *      lsub[j], j=xlsub[t], .., xlsub[t+1]-1
 *  is the structure of the last column t of this supernode.
 *  It is for the purpose of symmetric pruning. Therefore, the
 *  structural subscripts can be rearranged without making physical
 *  interchanges among the numerical values.
 *
 *  However, if the supernode has only one column, then we
 *  only keep one set of subscripts. For any subscript interchange
 *  performed, similar interchange must be done on the numerical
 *  values.
 *
 *  The last column structures (for pruning) will be removed
 *  after the numercial LU factorization phase.
 *
 *   (xlusup,lusup): lusup[*] contains the numerical values of the
 *  rectangular supernodes; xlusup[j] points to the starting
 *  location of the j-th column in storage vector lusup[*]
 *  Note: xlusup is indexed by column.
 *  Each rectangular supernode is stored by column-major
 *  scheme, consistent with Fortran 2-dim array storage.
 *
 *   (xusub,ucol,usub): ucol[*] stores the numerical values of
 *  U-columns outside the rectangular supernodes. The row
 *  subscript of nonzero ucol[k] is stored in usub[k].
 *  xusub[i] points to the starting location of column i in ucol.
 *  Storage: new row subscripts; that is subscripts of PA.
 * </pre>
 */
#ifndef __SUPERLU_sSP_DEFS /* allow multiple inclusions */
#define __SUPERLU_sSP_DEFS

/*
 * File name:       ssp_defs.h
 * Purpose:             Sparse matrix types and function prototypes
 * History:
 */

#ifdef _CRAY
#include <fortran.h>
#endif

#include <math.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include "slu_Cnames.h"
#include "superlu_config.h"
#include "supermatrix.h"
#include "slu_util.h"

/* -------- Prototypes -------- */

#ifdef __cplusplus
extern "C" {
#endif

/*! \brief Driver routines */
extern void
sgssv(superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *,
      SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int_t *info);
extern void
sgssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,
       char *, float *, float *, SuperMatrix *, SuperMatrix *,
       void *, int_t lwork, SuperMatrix *, SuperMatrix *,
       float *, float *, float *, float *,
       GlobalLU_t *, mem_usage_t *, SuperLUStat_t *, int_t *info);
    /* ILU */
extern void
sgsisv(superlu_options_t *, SuperMatrix *, int *, int *, SuperMatrix *,
      SuperMatrix *, SuperMatrix *, SuperLUStat_t *, int *);
extern void
sgsisx(superlu_options_t *options, SuperMatrix *A, int *perm_c, int *perm_r,
       int *etree, char *equed, float *R, float *C,
       SuperMatrix *L, SuperMatrix *U, void *work, int_t lwork,
       SuperMatrix *B, SuperMatrix *X, float *recip_pivot_growth, float *rcond,
       GlobalLU_t *Glu, mem_usage_t *mem_usage, SuperLUStat_t *stat, int_t *info);

/*! \brief Supernodal LU factor related */
extern void
sCreate_CompCol_Matrix(SuperMatrix *, int, int, int_t, float *,
               int_t *, int_t *, Stype_t, Dtype_t, Mtype_t);
extern void
sCreate_CompRow_Matrix(SuperMatrix *, int, int, int_t, float *,
               int_t *, int_t *, Stype_t, Dtype_t, Mtype_t);
extern void sCompRow_to_CompCol(int, int, int_t, float*, int_t*, int_t*,
                           float **, int_t **, int_t **);
extern void
sCopy_CompCol_Matrix(SuperMatrix *, SuperMatrix *);
extern void
sCreate_Dense_Matrix(SuperMatrix *, int, int, float *, int,
             Stype_t, Dtype_t, Mtype_t);
extern void
sCreate_SuperNode_Matrix(SuperMatrix *, int, int, int_t, float *,
                 int_t *, int_t *, int_t *, int *, int *,
             Stype_t, Dtype_t, Mtype_t);
extern void
sCopy_Dense_Matrix(int, int, float *, int, float *, int);

extern void    sallocateA (int, int_t, float **, int_t **, int_t **);
extern void    sgstrf (superlu_options_t*, SuperMatrix*,
                       int, int, int*, void *, int_t, int *, int *,
                       SuperMatrix *, SuperMatrix *, GlobalLU_t *,
               SuperLUStat_t*, int_t *info);
extern int_t   ssnode_dfs (const int, const int, const int_t *, const int_t *,
                 const int_t *, int_t *, int *, GlobalLU_t *);
extern int     ssnode_bmod (const int, const int, const int, float *,
                              float *, GlobalLU_t *, SuperLUStat_t*);
extern void    spanel_dfs (const int, const int, const int, SuperMatrix *,
               int *, int *, float *, int *, int *, int *,
               int_t *, int *, int *, int_t *, GlobalLU_t *);
extern void    spanel_bmod (const int, const int, const int, const int,
                           float *, float *, int *, int *,
               GlobalLU_t *, SuperLUStat_t*);
extern int     scolumn_dfs (const int, const int, int *, int *, int *, int *,
               int *, int_t *, int *, int *, int_t *, GlobalLU_t *);
extern int     scolumn_bmod (const int, const int, float *,
               float *, int *, int *, int,
                           GlobalLU_t *, SuperLUStat_t*);
extern int     scopy_to_ucol (int, int, int *, int *, int *,
                              float *, GlobalLU_t *);
extern int     spivotL (const int, const double, int *, int *,
                         int *, int *, int *, GlobalLU_t *, SuperLUStat_t*);
extern void    spruneL (const int, const int *, const int, const int,
              const int *, const int *, int_t *, GlobalLU_t *);
extern void    sreadmt (int *, int *, int_t *, float **, int_t **, int_t **);
extern void    sGenXtrue (int, int, float *, int);
extern void    sFillRHS (trans_t, int, float *, int, SuperMatrix *,
              SuperMatrix *);
extern void    sgstrs (trans_t, SuperMatrix *, SuperMatrix *, int *, int *,
                        SuperMatrix *, SuperLUStat_t*, int *);
/* ILU */
extern void    sgsitrf (superlu_options_t*, SuperMatrix*, int, int, int*,
                void *, int_t, int *, int *, SuperMatrix *, SuperMatrix *,
                        GlobalLU_t *, SuperLUStat_t*, int_t *info);
extern int     sldperm(int, int, int_t, int_t [], int_t [], float [],
                        int [], float [], float []);
extern int     ilu_ssnode_dfs (const int, const int, const int_t *, const int_t *,
                   const int_t *, int *, GlobalLU_t *);
extern void    ilu_spanel_dfs (const int, const int, const int, SuperMatrix *,
                   int *, int *, float *, float *, int *, int *,
                   int *, int *, int *, int_t *, GlobalLU_t *);
extern int     ilu_scolumn_dfs (const int, const int, int *, int *, int *,
                int *, int *, int *, int *, int_t *, GlobalLU_t *);
extern int     ilu_scopy_to_ucol (int, int, int *, int *, int *,
                                  float *, int, milu_t, double, int,
                                  float *, int *, GlobalLU_t *, float *);
extern int     ilu_spivotL (const int, const double, int *, int *, int, int *,
                int *, int *, int *, double, milu_t,
                            float, GlobalLU_t *, SuperLUStat_t*);
extern int     ilu_sdrop_row (superlu_options_t *, int, int, double,
                              int, int *, double *, GlobalLU_t *,
                              float *, float *, int);

/*! \brief Driver related */

extern void    sgsequ (SuperMatrix *, float *, float *, float *,
            float *, float *, int *);
extern void    slaqgs (SuperMatrix *, float *, float *, float,
                        float, float, char *);
extern void    sgscon (char *, SuperMatrix *, SuperMatrix *,
                 float, float *, SuperLUStat_t*, int *);
extern float   sPivotGrowth(int, SuperMatrix *, int *,
                            SuperMatrix *, SuperMatrix *);
extern void    sgsrfs (trans_t, SuperMatrix *, SuperMatrix *,
                       SuperMatrix *, int *, int *, char *, float *,
                       float *, SuperMatrix *, SuperMatrix *,
                       float *, float *, SuperLUStat_t*, int *);

extern int     sp_strsv (char *, char *, char *, SuperMatrix *,
            SuperMatrix *, float *, SuperLUStat_t*, int *);
extern int     sp_sgemv (char *, float, SuperMatrix *, float *,
            int, float, float *, int);

extern int     sp_sgemm (char *, char *, int, int, int, float,
            SuperMatrix *, float *, int, float,
            float *, int);
extern         float smach(char *);   /* from C99 standard, in float.h */

/*! \brief Memory-related */
extern int_t   sLUMemInit (fact_t, void *, int_t, int, int, int_t, int,
                            float, SuperMatrix *, SuperMatrix *,
                            GlobalLU_t *, int **, float **);
extern void    sSetRWork (int, int, float *, float **, float **);
extern void    sLUWorkFree (int *, float *, GlobalLU_t *);
extern int_t   sLUMemXpand (int, int_t, MemType, int_t *, GlobalLU_t *);

extern float  *floatMalloc(size_t);
extern float  *floatCalloc(size_t);
extern int_t   smemory_usage(const int_t, const int_t, const int_t, const int);
extern int     sQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);
extern int     ilu_sQuerySpace (SuperMatrix *, SuperMatrix *, mem_usage_t *);

/*! \brief Auxiliary routines */
extern void    sreadhb(FILE *, int *, int *, int_t *, float **, int_t **, int_t **);
extern void    sreadrb(int *, int *, int_t *, float **, int_t **, int_t **);
extern void    sreadtriple(int *, int *, int_t *, float **, int_t **, int_t **);
extern void    sreadMM(FILE *, int *, int *, int_t *, float **, int_t **, int_t **);
extern void    sfill (float *, int, float);
extern void    sinf_norm_error (int, SuperMatrix *, float *);
extern float  sqselect(int, float *, int);

/*! \brief Routines for debugging */
extern void    sPrint_CompCol_Matrix(char *, SuperMatrix *);
extern void    sPrint_SuperNode_Matrix(char *, SuperMatrix *);
extern void    sPrint_Dense_Matrix(char *, SuperMatrix *);
extern void    sprint_lu_col(char *, int, int, int_t *, GlobalLU_t *);
extern int     print_double_vec(char *, int, double *);
extern void    scheck_tempv(int, float *);

/*! \brief BLAS */

extern int sgemm_(const char*, const char*, const int*, const int*, const int*,
                  const float*, const float*, const int*, const float*,
          const int*, const float*, float*, const int*);
extern int strsv_(char*, char*, char*, int*, float*, int*,
                  float*, int*);
extern int strsm_(char*, char*, char*, char*, int*, int*,
                  float*, float*, int*, float*, int*);
extern int sgemv_(char *, int *, int *, float *, float *a, int *,
                  float *, int *, float *, float *, int *);

extern void susolve(int, int, float*, float*);
extern void slsolve(int, int, float*, float*);
extern void smatvec(int, int, int, float*, float*, float*);

#ifdef __cplusplus
  }
#endif

#endif /* __SUPERLU_sSP_DEFS */

Found UMFPACK: TRUE
  Version 6.1.1
  Includes /opt/homebrew/include
  Libs /opt/homebrew/lib/libumfpack.dylib;/opt/homebrew/lib/libcolamd.dylib;/opt/homebrew/lib/libccolamd.dylib;/opt/homebrew/lib/libamd.dylib;/opt/homebrew/lib/libcamd.dylib;/opt/homebrew/lib/libcholmod.dylib;/opt/homebrew/lib/libsuitesparseconfig.dylib;/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/System/Library/Frameworks/Accelerate.framework;/opt/homebrew/lib/libmetis.dylib
Found HDF5: TRUE
  Version
  Includes /opt/homebrew/include
  Libs /opt/homebrew/lib/libhdf5.dylib
  Defs
-----------------------------------------------------------------------

-- Configuring done (3.3s)
-- Generating done (0.1s)
-- Build files have been written to: /Users/alex/tmp/CADET-4.4.0/build

make output:

% make -j 4
[  1%] Building C object ThirdParty/sundials/src/sunlinsol_spgmr/CMakeFiles/sundials_sunlinsolspgmr_static.dir/sunlinsol_spgmr.c.o
[  1%] Building C object ThirdParty/sundials/src/nvec_ser/CMakeFiles/sundials_nvecserial_static.dir/nvector_serial.c.o
[  1%] Building C object ThirdParty/sundials/src/sunlinsol_spfgmr/CMakeFiles/sundials_sunlinsolspfgmr_static.dir/sunlinsol_spfgmr.c.o
[  1%] Building C object ThirdParty/sundials/src/sunlinsol_spbcgs/CMakeFiles/sundials_sunlinsolspbcgs_static.dir/sunlinsol_spbcgs.c.o
[  1%] Building C object ThirdParty/sundials/src/sunlinsol_spbcgs/CMakeFiles/sundials_sunlinsolspbcgs_static.dir/__/sundials/sundials_math.c.o
[  2%] Building C object ThirdParty/sundials/src/sunlinsol_spfgmr/CMakeFiles/sundials_sunlinsolspfgmr_static.dir/__/sundials/sundials_math.c.o
[  3%] Building C object ThirdParty/sundials/src/sunlinsol_spgmr/CMakeFiles/sundials_sunlinsolspgmr_static.dir/__/sundials/sundials_math.c.o
[  4%] Building C object ThirdParty/sundials/src/sunlinsol_spbcgs/CMakeFiles/sundials_sunlinsolspbcgs_static.dir/__/sundials/sundials_nvector.c.o
[  4%] Building C object ThirdParty/sundials/src/sunlinsol_spfgmr/CMakeFiles/sundials_sunlinsolspfgmr_static.dir/__/sundials/sundials_nvector.c.o
[  4%] Building C object ThirdParty/sundials/src/sunlinsol_spgmr/CMakeFiles/sundials_sunlinsolspgmr_static.dir/__/sundials/sundials_nvector.c.o
[  5%] Building C object ThirdParty/sundials/src/nvec_ser/CMakeFiles/sundials_nvecserial_static.dir/__/sundials/sundials_math.c.o
[  5%] Building C object ThirdParty/sundials/src/sunlinsol_spbcgs/CMakeFiles/sundials_sunlinsolspbcgs_static.dir/__/sundials/sundials_linearsolver.c.o
[  6%] Building C object ThirdParty/sundials/src/sunlinsol_spgmr/CMakeFiles/sundials_sunlinsolspgmr_static.dir/__/sundials/sundials_linearsolver.c.o
[  7%] Building C object ThirdParty/sundials/src/sunlinsol_spfgmr/CMakeFiles/sundials_sunlinsolspfgmr_static.dir/__/sundials/sundials_linearsolver.c.o
[  7%] Linking C static library libsundials_nvecserial.a
[  8%] Building C object ThirdParty/sundials/src/sunlinsol_spbcgs/CMakeFiles/sundials_sunlinsolspbcgs_static.dir/__/sundials/sundials_iterative.c.o
[  8%] Building C object ThirdParty/sundials/src/sunlinsol_spfgmr/CMakeFiles/sundials_sunlinsolspfgmr_static.dir/__/sundials/sundials_iterative.c.o
[  8%] Built target sundials_nvecserial_static
[  9%] Building C object ThirdParty/sundials/src/sunlinsol_spgmr/CMakeFiles/sundials_sunlinsolspgmr_static.dir/__/sundials/sundials_iterative.c.o
[ 10%] Building C object ThirdParty/sundials/src/sunlinsol_sptfqmr/CMakeFiles/sundials_sunlinsolsptfqmr_static.dir/sunlinsol_sptfqmr.c.o
[ 11%] Linking C static library libsundials_sunlinsolspbcgs.a
[ 12%] Linking C static library libsundials_sunlinsolspfgmr.a
[ 12%] Linking C static library libsundials_sunlinsolspgmr.a
[ 12%] Built target sundials_sunlinsolspbcgs_static
[ 12%] Building C object ThirdParty/sundials/src/sunlinsol_sptfqmr/CMakeFiles/sundials_sunlinsolsptfqmr_static.dir/__/sundials/sundials_math.c.o
[ 12%] Built target sundials_sunlinsolspfgmr_static
[ 12%] Built target sundials_sunlinsolspgmr_static
[ 13%] Building C object ThirdParty/sundials/src/sunlinsol_sptfqmr/CMakeFiles/sundials_sunlinsolsptfqmr_static.dir/__/sundials/sundials_nvector.c.o
[ 13%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/idas.c.o
[ 14%] Building CXX object src/build-tools/CMakeFiles/templateCodeGen.dir/templateCodeGen.cpp.o
[ 14%] Building C object ThirdParty/sundials/src/sunlinsol_sptfqmr/CMakeFiles/sundials_sunlinsolsptfqmr_static.dir/__/sundials/sundials_linearsolver.c.o
[ 15%] Building C object ThirdParty/sundials/src/sunlinsol_sptfqmr/CMakeFiles/sundials_sunlinsolsptfqmr_static.dir/__/sundials/sundials_iterative.c.o
[ 15%] Building CXX object src/tools/CMakeFiles/createLWE.dir/createLWE.cpp.o
[ 15%] Linking C static library libsundials_sunlinsolsptfqmr.a
[ 15%] Built target sundials_sunlinsolsptfqmr_static
[ 16%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/idaa.c.o
[ 17%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/idas_io.c.o
[ 17%] Building CXX object src/tools/CMakeFiles/createSCLin.dir/createSCLin.cpp.o
[ 17%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/idas_ic.c.o
[ 18%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/idaa_io.c.o
[ 18%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/idas_direct.c.o
[ 19%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/idas_spils.c.o
[ 19%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/idas_bbdpre.c.o
[ 20%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sundials/sundials_nvector.c.o
[ 20%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sundials/sundials_matrix.c.o
[ 21%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sundials/sundials_linearsolver.c.o
[ 22%] Linking CXX executable createLWE
[ 23%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sundials/sundials_math.c.o
[ 23%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sundials/sundials_band.c.o
[ 24%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sundials/sundials_dense.c.o
[ 25%] Linking CXX executable createSCLin
[ 25%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sundials/sundials_direct.c.o
[ 26%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sundials/sundials_iterative.c.o
[ 26%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sundials/sundials_version.c.o
[ 27%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/nvec_ser/nvector_serial.c.o
[ 27%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sunlinsol_spbcgs/sunlinsol_spbcgs.c.o
[ 28%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sunlinsol_spfgmr/sunlinsol_spfgmr.c.o
[ 28%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sunlinsol_spgmr/sunlinsol_spgmr.c.o
[ 29%] Building C object ThirdParty/sundials/src/idas/CMakeFiles/sundials_idas_static.dir/__/sunlinsol_sptfqmr/sunlinsol_sptfqmr.c.o
[ 30%] Linking C static library libsundials_idas.a
[ 30%] Built target sundials_idas_static
[ 31%] Building CXX object src/tools/CMakeFiles/createSCLinStep.dir/createSCLinStep.cpp.o
[ 31%] Built target createLWE
[ 31%] Building CXX object src/tools/CMakeFiles/createMCLin.dir/createMCLin.cpp.o
[ 31%] Built target createSCLin
[ 31%] Building CXX object src/tools/CMakeFiles/createSCLang.dir/createSCLang.cpp.o
[ 32%] Linking CXX executable templateCodeGen
[ 32%] Linking CXX executable createSCLinStep
[ 33%] Linking CXX executable createMCLin
[ 34%] Linking CXX executable createSCLang
[ 34%] Built target createSCLinStep
[ 34%] Building CXX object src/tools/CMakeFiles/createConvBenchmark.dir/createConvBenchmark.cpp.o
[ 34%] Built target createMCLin
[ 34%] Building CXX object src/tools/CMakeFiles/convertFile.dir/convertFile.cpp.o
[ 34%] Built target createSCLang
[ 35%] Building CXX object src/tools/CMakeFiles/convertFile.dir/__/io/FileIO.cpp.o
[ 36%] Building CXX object src/libcadet/CMakeFiles/libcadet_nonlinalg_static.dir/linalg/BandMatrix.cpp.o
In file included from /Users/alex/tmp/CADET-4.4.0/src/io/FileIO.cpp:26:
/Users/alex/tmp/CADET-4.4.0/ThirdParty/json/json.hpp:8678:43: warning: overlapping comparisons always evaluate to false [-Wtautological-overlap-compare]
        const bool is_negative = (x <= 0) and (x != 0);  // see issue #755
                                 ~~~~~~~~~^~~~~~~~~~~~
/Users/alex/tmp/CADET-4.4.0/ThirdParty/json/json.hpp:8475:17: note: in instantiation of function template specialization 'nlohmann::detail::serializer<nlohmann::basic_json<>>::dump_integer<unsigned long long, 0>' requested here
                dump_integer(val.m_value.number_unsigned);
                ^
/Users/alex/tmp/CADET-4.4.0/ThirdParty/json/json.hpp:11565:15: note: in instantiation of member function 'nlohmann::detail::serializer<nlohmann::basic_json<>>::dump' requested here
            s.dump(*this, true, ensure_ascii, static_cast<unsigned int>(indent));
              ^
/Users/alex/tmp/CADET-4.4.0/ThirdParty/json/json.hpp:17216:20: note: in instantiation of member function 'nlohmann::basic_json<>::dump' requested here
        return h(j.dump());
                   ^
[ 37%] Linking CXX executable createConvBenchmark
[ 37%] Built target templateCodeGen
[ 37%] Building CXX object src/tools/CMakeFiles/convertFile.dir/FormatConverter.cpp.o
[ 37%] Building CXX object src/libcadet/CMakeFiles/libcadet_nonlinalg_static.dir/linalg/DenseMatrix.cpp.o
[ 38%] Building CXX object src/libcadet/CMakeFiles/libcadet_nonlinalg_static.dir/linalg/SparseMatrix.cpp.o
[ 38%] Building CXX object src/libcadet/CMakeFiles/libcadet_nonlinalg_static.dir/linalg/CompressedSparseMatrix.cpp.o
[ 39%] Building CXX object src/tools/CMakeFiles/convertFile.dir/__/__/ThirdParty/pugixml/pugixml.cpp.o
In file included from /Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.cpp:13:
In file included from /Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:25:
/Users/alex/tmp/CADET-4.4.0/build/src/libcadet/SparseSolverInterface.hpp:329:2: error: C++ requires a type specifier for all declarations
 sparse_int_t;
 ^
In file included from /Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.cpp:13:
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:114:18: error: unknown type name 'sparse_int_t'
        void compressTo(sparse_int_t* colIdx, sparse_int_t* rowStart) const CADET_NOEXCEPT;
                        ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:114:40: error: unknown type name 'sparse_int_t'
        void compressTo(sparse_int_t* colIdx, sparse_int_t* rowStart) const CADET_NOEXCEPT;
                                              ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:165:19: error: unknown type name 'sparse_int_t'
                inline bool add(sparse_int_t column)
                                ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:190:24: error: unknown type name 'sparse_int_t'
                inline bool contains(sparse_int_t column) const CADET_NOEXCEPT
                                     ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:199:21: error: template argument for template type parameter must be a type
                const std::vector<sparse_int_t>& columnIndices() const CADET_NOEXCEPT { return _colIdx; }
                                  ^~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/vector:339:17: note: template parameter is declared here
template <class _Tp, class _Allocator /* = allocator<_Tp> */>
                ^
In file included from /Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.cpp:13:
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:208:15: error: template argument for template type parameter must be a type
                std::vector<sparse_int_t> _colIdx; //!< Sorted column indices of non-zero elements in this row
                            ^~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/vector:339:17: note: template parameter is declared here
template <class _Tp, class _Allocator /* = allocator<_Tp> */>
                ^
In file included from /Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.cpp:13:
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:490:24: error: unknown type name 'sparse_int_t'
        inline bool isNonZero(sparse_int_t row, sparse_int_t col) const CADET_NOEXCEPT
                              ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:490:42: error: unknown type name 'sparse_int_t'
        inline bool isNonZero(sparse_int_t row, sparse_int_t col) const CADET_NOEXCEPT
                                                ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:513:28: error: unknown type name 'sparse_int_t'
        inline double& operator()(sparse_int_t row, sparse_int_t col)
                                  ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:513:46: error: unknown type name 'sparse_int_t'
        inline double& operator()(sparse_int_t row, sparse_int_t col)
                                                    ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:538:27: error: unknown type name 'sparse_int_t'
        inline double operator()(sparse_int_t row, sparse_int_t col) const CADET_NOEXCEPT
                                 ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:538:45: error: unknown type name 'sparse_int_t'
        inline double operator()(sparse_int_t row, sparse_int_t col) const CADET_NOEXCEPT
                                                   ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:560:27: error: template argument for template type parameter must be a type
        inline const std::vector<sparse_int_t>& rowStartIndices() const CADET_NOEXCEPT { return _rowStart; }
                                 ^~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/vector:339:17: note: template parameter is declared here
template <class _Tp, class _Allocator /* = allocator<_Tp> */>
                ^
In file included from /Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.cpp:13:
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:566:27: error: template argument for template type parameter must be a type
        inline const std::vector<sparse_int_t>& columnIndices() const CADET_NOEXCEPT { return _colIdx; }
                                 ^~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/vector:339:17: note: template parameter is declared here
template <class _Tp, class _Allocator /* = allocator<_Tp> */>
                ^
In file included from /Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.cpp:13:
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:579:9: error: unknown type name 'sparse_int_t'
        inline sparse_int_t const* columnIndicesOfRow(int row) const CADET_NOEXCEPT
               ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:612:9: error: unknown type name 'sparse_int_t'
        inline sparse_int_t numNonZerosInRow(int row) const CADET_NOEXCEPT { return _rowStart[row+1] - _rowStart[row]; }
               ^
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:712:14: error: template argument for template type parameter must be a type
        std::vector<sparse_int_t> _colIdx; //!< Column of the value in _values (size is _values.size() = numNonZeros)
                    ^~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/vector:339:17: note: template parameter is declared here
template <class _Tp, class _Allocator /* = allocator<_Tp> */>
                ^
In file included from /Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.cpp:13:
/Users/alex/tmp/CADET-4.4.0/src/libcadet/linalg/CompressedSparseMatrix.hpp:713:14: error: template argument for template type parameter must be a type
        std::vector<sparse_int_t> _rowStart; //!< Index into _colIdx that marks the beginning of a row (two entries more than rows; second to last entry points beyond the last row, so that _rowStart[numRows] = _values.size() = numNonZeros)
                    ^~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/vector:339:17: note: template parameter is declared here
template <class _Tp, class _Allocator /* = allocator<_Tp> */>
                ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [src/libcadet/CMakeFiles/libcadet_nonlinalg_static.dir/linalg/CompressedSparseMatrix.cpp.o] Error 1
make[1]: *** [src/libcadet/CMakeFiles/libcadet_nonlinalg_static.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 39%] Built target createConvBenchmark
/Users/alex/tmp/CADET-4.4.0/ThirdParty/pugixml/pugixml.cpp:3362:3: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
                sprintf(buf, "%d", value);
                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
/Users/alex/tmp/CADET-4.4.0/ThirdParty/pugixml/pugixml.cpp:3370:3: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
                sprintf(buf, "%u", value);
                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
/Users/alex/tmp/CADET-4.4.0/ThirdParty/pugixml/pugixml.cpp:3378:3: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
                sprintf(buf, "%g", value);
                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
/Users/alex/tmp/CADET-4.4.0/ThirdParty/pugixml/pugixml.cpp:6304:3: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
                sprintf(buffer, "%.*e", DBL_DIG, value);
                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
4 warnings generated.
[ 40%] Linking CXX executable convertFile
[ 40%] Built target convertFile
make: *** [all] Error 2

Sorry for long listings.

sleweke commented 10 months ago

Looks like SuperLU has changed its headers since release 6.0. The CMake script tries to infer the size of the SuperLU index type (i.e., 32 bit or 64 bit int) by scanning slu_sdefs.h. From release 6 on, the type is defined in superlu_config.h instead, so the regex didn't match and returned the content of the full file.

Until we figure out a solution that works for all releases, I suggest to disable SuperLU support in CADET. If you do not need the 2D General Rate Model, simply run cmake with the additional flag -DENABLE_GRM_2D=OFF:

cmake -DCMAKE_INSTALL_PREFIX=$HOME/src/cadet -DCMAKE_CXX_FLAGS="-std=c++17" -DENABLE_TESTS=OFF -DENABLE_GRM_2D=OFF ..

If you'd like to keep the 2D GRM, edit <project root>/CMakeLists.txt: Replace

if (ENABLE_GRM_2D)
    set(SUPERLU_PREFER_STATIC_LIBS ${ENABLE_STATIC_LINK_DEPS})
    find_package(SuperLU)
    set_package_properties(SuperLU PROPERTIES
        TYPE RECOMMENDED
        PURPOSE "Sparse matrix solver"
    )

    set(UMFPACK_PREFER_STATIC_LIBS ${ENABLE_STATIC_LINK_DEPS})
    find_package(UMFPACK)
    set_package_properties(UMFPACK PROPERTIES
        TYPE RECOMMENDED
        PURPOSE "Sparse matrix solver"
    )
endif()

with

if (ENABLE_GRM_2D)
    set(SUPERLU_PREFER_STATIC_LIBS ${ENABLE_STATIC_LINK_DEPS})
    set(SUPERLU_FOUND OFF)

    set(UMFPACK_PREFER_STATIC_LIBS ${ENABLE_STATIC_LINK_DEPS})
    find_package(UMFPACK)
    set_package_properties(UMFPACK PROPERTIES
        TYPE RECOMMENDED
        PURPOSE "Sparse matrix solver"
    )
endif()

By the way, the CMake flag -DCMAKE_CXX_FLAGS="-std=c++17" should not be necessary.

avasyanin commented 10 months ago

Builds successfully. Thank you @sleweke for the quick response!