Commit cf856b46 authored by Mart Lubbers's avatar Mart Lubbers

rework to match the style and be more os independent

parent e6518ebe
Pipeline #20994 passed with stage
in 56 seconds
......@@ -833,18 +833,18 @@ step intr (DLink ds=:{ok, newpaths, fileinfo, libsinfo, modpaths, abccache, proj
// runtime objects and dynamic libs
# stdl = Concat sys_libs (standardStaticLibraries tp lo.method)
# stdo = Concat sys_objs (standardObjectFiles ao.stack_traces ao.profiling tp use_64_bit_processor)
# ((stdoOk,ofiles,abcPathsCache), ps)
# (stdoOk,ofiles,abcPathsCache, ps)
= case ao.standard_rte of
True -> accFiles (AccTuple4 (GetPathNames (Map (\x->("", x)) stdo) Nil srcpaths abcPathsCache)) ps
False -> ((True,Nil,abcPathsCache), ps)
True -> GetPathNames (Map (\x->("", x)) stdo) Nil srcpaths abcPathsCache ps
False -> (True,Nil,abcPathsCache, ps)
| not stdoOk
# line = Level3 ["Link error: File: '" +++ (Head ofiles) +++ "' not found."]
# ps = showInfo line ps
= continue False newpaths False fileinfo libsinfo modpaths project intr (abccache, ps)
# ((stdlOk,lfiles,abcPathsCache), ps)
# (stdlOk,lfiles,abcPathsCache, ps)
= case ao.standard_rte of
True -> accFiles (AccTuple4 (GetPathNames (Map (\x->("", x)) stdl) Nil srcpaths abcPathsCache)) ps
False -> ((True,Nil,abcPathsCache), ps)
True -> GetPathNames (Map (\x->("", x)) stdl) Nil srcpaths abcPathsCache ps
False -> (True,Nil,abcPathsCache, ps)
| not stdlOk
# line = Level3 ["Link error: File: '" +++ (Head lfiles) +++ "' not found."]
# ps = showInfo line ps
......@@ -870,12 +870,12 @@ step intr (DLink ds=:{ok, newpaths, fileinfo, libsinfo, modpaths, abccache, proj
// module imported objects and dynamic libs
# (objs, libs) = PR_GetABCLinkInfo project
# linkObjFileNames = Map (\(d, a)->(d, append_object_file_extension_if_dot_at_end tp use_64_bit_processor a)) objs
# ((objPathsOk,ofiles,abcPathsCache), ps)
= accFiles (AccTuple4 (GetPathNames linkObjFileNames ofiles srcpaths abcPathsCache)) ps
# ((_,ofiles`,abcPathsCache), ps)
= accFiles (AccTuple4 (GetPathNames /*abcLinkInfo.*/linkObjFileNames ofiles` srcpaths abcPathsCache)) ps
# ((libPathsOk,lfiles,abcPathsCache), ps)
= accFiles (AccTuple4 (GetPathNames libs lfiles srcpaths abcPathsCache)) ps
# (objPathsOk,ofiles,abcPathsCache, ps)
= GetPathNames linkObjFileNames ofiles srcpaths abcPathsCache ps
# (_,ofiles`,abcPathsCache, ps)
= GetPathNames /*abcLinkInfo.*/linkObjFileNames ofiles` srcpaths abcPathsCache ps
# (libPathsOk,lfiles,abcPathsCache, ps)
= GetPathNames libs lfiles srcpaths abcPathsCache ps
| not objPathsOk
# line = Level3 ["Link error: File: '" +++ (Head ofiles) +++ "' not found."]
# ps = showInfo line ps
......@@ -1598,23 +1598,17 @@ CheckExecOutOfDate gen execpath fileinfo project ps
= (False,ps)
//-- dircache functions
GetPathNames :: !(List (String, String)) !(List String) !(List String) !*DirCache !*Files -> (.Bool,List String,!*DirCache, !*Files)
GetPathNames Nil acc srcpaths cache files
= (True, acc, cache, files)
GetPathNames ((mod, fn):!fns) acc srcpaths cache files
GetPathNames :: !(List (String, String)) !(List String) !(List String) !*DirCache !*GeneralSt -> (.Bool,List String,!*DirCache, !*GeneralSt)
GetPathNames Nil acc srcpaths cache ps
= (True, acc, cache, ps)
GetPathNames ((mod, fn):!fns) acc srcpaths cache ps
# (ok,pn,_,cache) = DC_Search fn cache
| ok
= GetPathNames fns (pn +++ DirSeparatorString +++ fn :! acc) srcpaths cache files
# ((ok, pn), files) = FindHModule (dropLastComponent mod (size mod - 2)) ("/Clean System Files/" +++ fn) srcpaths files
= GetPathNames fns (pn +++ DirSeparatorString +++ fn :! acc) srcpaths cache ps
# ((ok, pn), ps) = accFiles (FindHModule mod (DirSeparatorString+++SystemDir+++DirSeparatorString+++fn) srcpaths) ps
| ok
= GetPathNames fns (pn :! acc) srcpaths cache files
= (False, (fn :! Nil), cache, files)
where
dropLastComponent :: !String !Int -> !String
dropLastComponent s 0 = s
dropLastComponent s i
| s.[i] == '.' = s % (0, i-1)
= dropLastComponent s (i - 1)
= GetPathNames fns (pn :! acc) srcpaths cache ps
= (False, (fn :! Nil), cache, ps)
// Lookup Module Paths in Directory Cache
LookupModulePaths :: !(List .String) !*DirCache !*Files -> (Bool,.[!ModuleDirAndName],*DirCache,!*Files);
......
......@@ -750,7 +750,17 @@ PR_GetABCLinkInfo project=:{inflist}
# allLinkInfoRecords = map toRecord (StrictListToList inflist);
= foldl mergeTwoRecords emptyRecord allLinkInfoRecords;
where
toRecord {InfListItem | mn,info={abcLinkInfo}} = (Map (\x->(mn, x)) abcLinkInfo.linkObjFileNames ,Map (\x->(mn, x)) abcLinkInfo.linkLibraryNames)
toRecord {InfListItem | mn,info={abcLinkInfo}} =
(Map mkHierarchical abcLinkInfo.linkObjFileNames
,Map mkHierarchical abcLinkInfo.linkLibraryNames)
where
mkHierarchical file = (removeLastComponent mn (size mn - 2), file)
removeLastComponent s 0 = ""
removeLastComponent s i
| s.[i] == '.' = s % (0, i-1)
= removeLastComponent s (i-1)
mergeTwoRecords (objs, libs) (cobjs, clibs) = (UnionList objs cobjs, UnionList libs clibs)
emptyRecord = (Nil, Nil);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment