68 lines
7.5 KiB
Meson
68 lines
7.5 KiB
Meson
option('allow_preinstalled', type: 'boolean', value: true, description: 'Allow one complete, feature-compatible system MFEM. Set false for the dependency-hermetic source fallback.')
|
|
option('feature_profile', type: 'combo', choices: ['minimal', 'portable', 'full'], value: 'portable', description: 'Defaults for auto features. full is strict and requires all selected non-bundled TPLs in dependency_prefix.')
|
|
option('build_python', type: 'boolean', value: false, description: 'Build the nanobind Python extension and install native assets inside the Python package.')
|
|
option('build_examples', type: 'boolean', value: true, description: 'Build MFEM capability examples.')
|
|
option('build_benchmarks', type: 'boolean', value: false, description: 'Build the native MPI-capable backend benchmark and register the benchmark suite.')
|
|
option('build_tests', type: 'boolean', value: true, description: 'Register serial, parallel, and Python smoke tests when applicable.')
|
|
option('install_mfem', type: 'boolean', value: true, description: 'Install the source-built MFEM bundle and its runtime dependencies.')
|
|
option('dependency_prefix', type: 'string', value: '', description: 'Explicit prefix containing optional TPLs. Used even when allow_preinstalled=false.')
|
|
option('jobs', type: 'integer', min: 1, max: 1024, value: 4, description: 'Parallel jobs for the CMake/Make source bundle.')
|
|
option('mfem_cuda_arch', type: 'string', value: 'native', description: 'CUDA architectures understood by CMake, for example 80;86. native requires a recent CMake/toolkit.')
|
|
option('mfem_hip_arch', type: 'string', value: '', description: 'HIP GPU target, for example gfx90a. Empty lets the toolchain choose.')
|
|
option('mfem_precision', type: 'combo', choices: ['double', 'single'], value: 'double', description: 'Floating-point precision used consistently by MFEM and Hypre.')
|
|
option('python_install_native', type: 'boolean', value: true, description: 'Install MFEM headers, CMake/pkg-config data, and runtime libraries under the Python package.')
|
|
option('macos_deployment_target', type: 'string', value: '11.0', description: 'Minimum macOS version for native artifacts; ignored on other systems. Empty uses the toolchain default.')
|
|
|
|
option('mfem_mpi', type: 'feature', value: 'auto', description: 'MPI parallel MFEM; implies Hypre.')
|
|
option('mfem_metis', type: 'feature', value: 'auto', description: 'METIS graph partitioning.')
|
|
option('mfem_exceptions', type: 'feature', value: 'auto', description: 'MFEM C++ exceptions.')
|
|
option('mfem_zlib', type: 'feature', value: 'auto', description: 'zlib compressed streams.')
|
|
option('mfem_libunwind', type: 'feature', value: 'auto', description: 'libunwind backtraces.')
|
|
option('mfem_lapack', type: 'feature', value: 'auto', description: 'BLAS/LAPACK solvers.')
|
|
option('mfem_thread_safe', type: 'feature', value: 'auto', description: 'MFEM thread-safe mode.')
|
|
option('mfem_openmp', type: 'feature', value: 'auto', description: 'OpenMP backend.')
|
|
option('mfem_legacy_openmp', type: 'feature', value: 'disabled', description: 'Legacy OpenMP backend (mutually exclusive with modern device backends).')
|
|
option('mfem_memalloc', type: 'feature', value: 'enabled', description: 'MFEM internal memory allocator.')
|
|
option('mfem_sundials', type: 'feature', value: 'auto', description: 'SUNDIALS ODE/nonlinear solvers.')
|
|
option('mfem_suitesparse', type: 'feature', value: 'auto', description: 'SuiteSparse direct solvers.')
|
|
option('mfem_superlu', type: 'feature', value: 'auto', description: 'SuperLU_DIST.')
|
|
option('mfem_superlu5', type: 'feature', value: 'disabled', description: 'Compatibility with old SuperLU_DIST 5.1.')
|
|
option('mfem_mumps', type: 'feature', value: 'auto', description: 'MUMPS parallel direct solver.')
|
|
option('mfem_strumpack', type: 'feature', value: 'auto', description: 'STRUMPACK parallel solver.')
|
|
option('mfem_cudss', type: 'feature', value: 'auto', description: 'NVIDIA cuDSS (CUDA only, vendor binary dependency).')
|
|
option('mfem_ginkgo', type: 'feature', value: 'auto', description: 'Ginkgo solvers.')
|
|
option('mfem_amgx', type: 'feature', value: 'auto', description: 'NVIDIA AmgX.')
|
|
option('mfem_magma', type: 'feature', value: 'auto', description: 'MAGMA dense linear algebra.')
|
|
option('mfem_gnutls', type: 'feature', value: 'auto', description: 'GnuTLS socket security.')
|
|
option('mfem_gslib', type: 'feature', value: 'auto', description: 'GSLIB FindPoints support.')
|
|
option('mfem_hdf5', type: 'feature', value: 'auto', description: 'HDF5 data support.')
|
|
option('mfem_netcdf', type: 'feature', value: 'auto', description: 'NetCDF data support.')
|
|
option('mfem_petsc', type: 'feature', value: 'auto', description: 'PETSc solvers.')
|
|
option('mfem_slepc', type: 'feature', value: 'auto', description: 'SLEPc eigensolvers; implies PETSc.')
|
|
option('mfem_mpfr', type: 'feature', value: 'auto', description: 'MPFR arbitrary precision support.')
|
|
option('mfem_sidre', type: 'feature', value: 'auto', description: 'Axom/Sidre support.')
|
|
option('mfem_fms', type: 'feature', value: 'auto', description: 'FMS data model.')
|
|
option('mfem_conduit', type: 'feature', value: 'auto', description: 'Conduit data support.')
|
|
option('mfem_pumi', type: 'feature', value: 'auto', description: 'PUMI meshes.')
|
|
option('mfem_hiop', type: 'feature', value: 'auto', description: 'HiOp optimization.')
|
|
option('mfem_cuda', type: 'feature', value: 'auto', description: 'NVIDIA CUDA backend; requires a host CUDA toolkit.')
|
|
option('mfem_hip', type: 'feature', value: 'auto', description: 'AMD HIP backend; requires a host ROCm toolkit.')
|
|
option('mfem_occa', type: 'feature', value: 'auto', description: 'OCCA device backend.')
|
|
option('mfem_raja', type: 'feature', value: 'auto', description: 'RAJA device backend; raises MFEM to C++20.')
|
|
option('mfem_ceed', type: 'feature', value: 'auto', description: 'libCEED operator backend.')
|
|
option('mfem_umpire', type: 'feature', value: 'auto', description: 'Umpire memory manager; raises MFEM to C++20.')
|
|
option('mfem_simd', type: 'feature', value: 'auto', description: 'SIMD intrinsics.')
|
|
option('mfem_adios2', type: 'feature', value: 'auto', description: 'ADIOS2 I/O.')
|
|
option('mfem_caliper', type: 'feature', value: 'auto', description: 'Caliper profiling.')
|
|
option('mfem_algoim', type: 'feature', value: 'auto', description: 'Algoim implicit geometry support.')
|
|
option('mfem_mkl_cpardiso', type: 'feature', value: 'auto', description: 'Intel MKL Cluster PARDISO.')
|
|
option('mfem_mkl_pardiso', type: 'feature', value: 'auto', description: 'Intel MKL PARDISO.')
|
|
option('mfem_adforward', type: 'feature', value: 'auto', description: 'Forward mode for supported automatic differentiation packages.')
|
|
option('mfem_codipack', type: 'feature', value: 'auto', description: 'CoDiPack automatic differentiation.')
|
|
option('mfem_benchmark', type: 'feature', value: 'disabled', description: 'Upstream benchmark-program build switch; enabling is rejected because it is not an installed MFEM library capability.')
|
|
option('mfem_parelag', type: 'feature', value: 'disabled', description: 'Upstream ParELAG miniapp-only switch; enabling is rejected because it is not an installed MFEM library capability.')
|
|
option('mfem_tribol', type: 'feature', value: 'disabled', description: 'Upstream Tribol miniapp-only switch; enabling is rejected because it is not an installed MFEM library capability.')
|
|
option('mfem_enzyme', type: 'feature', value: 'auto', description: 'Enzyme AD plugin; requires matching Clang/LLVM.')
|
|
option('mfem_moonolith', type: 'feature', value: 'auto', description: 'Moonolith transfer miniapp integration.')
|
|
option('mfem_simmetrix', type: 'feature', value: 'auto', description: 'Simmetrix commercial mesh integration.')
|