from pathlib import Path
from typing import List


def get_suite_sparse_sources(ss_base_dir: Path) -> List[str]:
    """Get list of SuiteSparse source files

    :param ss_base_dir: SuiteSparse base directory
    """
    return list(map(str, [
        ss_base_dir / 'KLU' / 'Source' / 'klu_analyze_given.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_analyze.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_defaults.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_diagnostics.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_dump.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_extract.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_factor.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_free_numeric.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_free_symbolic.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_kernel.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_memory.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_refactor.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_scale.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_sort.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_solve.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu_tsolve.c',
        ss_base_dir / 'KLU' / 'Source' / 'klu.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_1.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_2.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_aat.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_control.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_defaults.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_dump.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_global.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_info.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_order.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_post_tree.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_postorder.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_preprocess.c',
        ss_base_dir / 'AMD' / 'Source' / 'amd_valid.c',
        ss_base_dir / 'COLAMD' / 'Source' / 'colamd.c',
        ss_base_dir / 'BTF' / 'Source' / 'btf_maxtrans.c',
        ss_base_dir / 'BTF' / 'Source' / 'btf_order.c',
        ss_base_dir / 'BTF' / 'Source' / 'btf_strongcomp.c',
        ss_base_dir / 'SuiteSparse_config' / 'SuiteSparse_config.c',
    ]))