# BLAS / LAPACK selection
option('blas', type: 'string', value: 'auto',
       description: 'BLAS library to use (default: autodetect based on `blas-order`)')
option('lapack', type: 'string', value: 'auto',
       description: 'LAPACK library to use (default: autodetect based on `lapack-order`)')
option('allow-noblas', type: 'boolean', value: true,
       description: 'Allow building with (slow!) internal fallback routines if no BLAS library is found')
option('blas-order', type: 'array', value: ['auto'],
       description: 'Preferred search order for BLAS libraries (e.g., mkl, openblas, blis, blas)')
option('lapack-order', type: 'array', value: ['auto'],
       description: 'Preferred search order for LAPACK libraries (e.g., mkl, openblas, lapack)')
option('use-ilp64', type: 'boolean', value: false,
       description: 'Use ILP64 (64-bit integer) BLAS/LAPACK interfaces')
option('blas-symbol-suffix', type: 'string', value: 'auto',
       description: 'Symbol suffix for BLAS/LAPACK symbols (if any)')
option('mkl-threading', type: 'combo', value: 'auto',
       choices: ['auto', 'seq', 'iomp', 'gomp', 'tbb'],
       description: 'Threading backend for MKL')

# Threading & parallelism
option('disable-threading', type: 'boolean', value: false,
        description: 'Disable threading support (see `NPY_ALLOW_THREADS` docs)')
option('enable-openmp', type: 'boolean', value: false,
       description: 'Enable compilation with OpenMP support')

# CPU optimization / SIMD
option('disable-optimization', type: 'boolean', value: false,
       description: 'Disable all CPU optimizations (dispatch, SIMD, loop unrolling)')
option('disable-svml', type: 'boolean', value: false,
       description: 'Disable use of Intel SVML')
option('disable-highway', type: 'boolean', value: false,
       description: 'Disable SIMD-optimized operations related to Google Highway')
option('disable-intel-sort', type: 'boolean', value: false,
       description: 'Disable SIMD-optimized operations related to Intel x86-simd-sort')
option('cpu-baseline', type: 'string', value: 'min',
       description: 'Minimal set of required CPU features')
option('cpu-baseline-detect', type: 'feature', value: 'auto',
       description: 'Detect CPU baseline from the compiler flags')
option('cpu-dispatch', type: 'string', value: 'max',
       description: 'Additional CPU features to dispatch to (beyond baseline)')

# SIMD test options
option('test-simd', type: 'array',
       value: [
         'BASELINE', 'X86_V2', 'X86_V3', 'X86_V4',
         'VSX', 'VSX2', 'VSX3', 'VSX4',
         'NEON', 'ASIMD',
         'VX', 'VXE', 'VXE2',
         'LSX',
       ],
       description: 'CPU SIMD feature sets to be tested by the NumPy SIMD test module')
option('test-simd-args', type: 'string', value: '',
       description: 'Extra arguments passed to the internal `_simd` test module')
