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_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.')