def form_fastqc_cmd_list(fastqc_fp, fastq_fp, outdir):
    """Generate argument list to be given as input to the fastqc function call.

    Args:
        fastqc_fp(str): the string representing path to fastqc program
        fastq_fp(str): the string representing path to the fastq file to be evaluated
        outdir(str): the string representing the path to the output directory

    Return value:
        call_args(list): the list of call_args representing the options for the fastqc subprocess call

    Raises:
        ValueError is raised when either the fastqc path or the fastqc input files are empty
    """
    # throw exceptions to prevent user from accidentally using interactive fastqc
    if fastqc_fp is '':
        raise ValueError('fastqc_fp name is empty')
    if fastq_fp is '':
        raise ValueError('fastq_fp file name is empty')

    # required arguments
    call_args_list = [fastqc_fp, fastq_fp]

    # direct output
    if outdir is not None:
        call_args_list.extend(["--outdir", outdir])

    return call_args_list