function model = mttCreateApps(model) apps_filename = [model.source,'_apps.txt'] ; apps = mttFetchApps(apps_filename) ; if isempty(apps) return ; end for i = 1:length(apps.app) app_source = apps.app{i} ; [rubbish,working_directory] = mttDetachText(model.source,'/') ; [name,path_spec] = mttDetachText(app_source,'/') ; if isempty(name) source_name = [working_directory,'/',domain_source] ; else directory = identify_directory(working_directory,path_spec,model) ; source_name = [directory,'/',name] ; end app_filename = [source_name,'_app.h'] ; model.app{i} = app_filename ; end function directory = identify_directory(working_directory,path_spec,model) path_names = mttGetFieldNames(model.env,'path') ; if isempty(path_spec) directory = [] ; else if path_spec(1)=='$' [path_alias,path_branch] = mttCutText(path_spec,'/') ; path_alias(1) = [] ; mttAssert(ismember(path_alias,path_names),... ['Path "',path_alias,'" not recognised']) ; path_root = getfield(model.env,'path',path_alias) ; if isempty(path_branch) directory = path_root ; else directory = [path_root,'/',path_branch] ; end else [name,local_directory] = mttDetachText(path_spec,'/') ; directory_located = 0 ; if strcmp(local_directory,'.') if isempty(name) directory = working_directory ; directory_located = 1 ; else local_directory = name ; end else local_directory = path_spec ; end if ~directory_located directory = mttLocateDirectory(working_directory,local_directory) ; end end end