fn load_descriptors(
    file_name: &str,
    force: bool,
    env_map: Option<Vec<String>>,
    stable: bool,
    experimental: bool,
    modify_core_tasks: Option<ModifyConfig>,
) -> Result<Config, CargoMakeError> {
    let default_config = load_internal_descriptors(stable, experimental, modify_core_tasks)?;

    let mut external_config =
        load_external_descriptor(".", file_name, force, true, RelativeTo::Makefile)?;

    external_config = match std::env::var("CARGO_MAKE_WORKSPACE_MAKEFILE") {
        Ok(workspace_makefile) => {
            let mut pathbuf = PathBuf::from(workspace_makefile);
            match pathbuf.clone().file_name() {
                Some(workspace_file_name) => match workspace_file_name.to_str() {
                    Some(workspace_file_name_str) => {
                        pathbuf.pop();

                        match pathbuf.to_str() {
                            Some(directory) => {
                                let workspace_config = load_external_descriptor(
                                    directory,
                                    workspace_file_name_str,
                                    false,
                                    false,
                                    RelativeTo::Makefile,
                                )?;
                                merge_external_configs(external_config, workspace_config)?
                            }
                            _ => external_config,
                        }
                    }
                    _ => external_config,
                },
                _ => external_config,
            }
        }
        _ => external_config,
    };

    let config =
        merge_base_config_and_external_config(default_config, external_config, env_map, false)?;

    debug!("Loaded merged config: {:#?}", &config);

    Ok(config)
}
Loads the tasks descriptor.<br>
It will first load the default descriptor which is defined in cargo-make
internally and afterwards tries to find the external descriptor and load it
as well.<br> If an external descriptor exists, it will be loaded and extend
the default descriptor. If one of the descriptor requires a newer version of
cargo-make, returns an error with the minimum version required by the
descriptor.
src/lib/descriptor/mod.rs