fixed some static explorer possible failures (if project had -J)

This commit is contained in:
Basile Burg 2014-08-04 15:13:50 +02:00
parent 864d573288
commit 44cadb4fd3
1 changed files with 18 additions and 11 deletions

View File

@ -371,13 +371,18 @@ begin
dmdproc := TProcess.Create(nil); dmdproc := TProcess.Create(nil);
lines := TStringList.Create; lines := TStringList.Create;
try try
// json file
jsf := GetTempDir(false); jsf := GetTempDir(false);
jsf += uniqueObjStr(dmdProc) + '.json'; jsf += uniqueObjStr(dmdProc) + '.json';
scf := GetTempDir(false); // main source file
scf += uniqueObjStr(dmdProc) + '.d'; scf := fDoc.fileName;
// if not fileExists(scf) then
lines.Assign(fDoc.Lines); begin
lines.SaveToFile(scf); scf := GetTempDir(false);
scf += uniqueObjStr(dmdProc) + '.d';
lines.Assign(fDoc.Lines);
lines.SaveToFile(scf);
end;
// option to gen. the Json file. // option to gen. the Json file.
dmdProc.ShowWindow := swoHIDE; dmdProc.ShowWindow := swoHIDE;
dmdproc.Options := []; dmdproc.Options := [];
@ -387,28 +392,31 @@ begin
dmdproc.Parameters.Add('-o-'); dmdproc.Parameters.Add('-o-');
dmdproc.Parameters.Add('-X'); dmdproc.Parameters.Add('-X');
dmdproc.Parameters.Add('-Xf' + jsf); dmdproc.Parameters.Add('-Xf' + jsf);
// projects additional sources and I and libman aliases // projects sources folders ,-I, -J
if fProj <> nil then if fProj <> nil then
begin begin
dmdProc.CurrentDirectory := extractFilePath(fProj.fileName); dmdProc.CurrentDirectory := extractFilePath(fProj.fileName);
if fProj <> nil then for i := 0 to fProj.Sources.Count-1 do if fProj <> nil then for i := 0 to fProj.Sources.Count-1 do
dmdproc.Parameters.Add('-I' + fProj.getAbsoluteSourceName(i)); dmdproc.Parameters.Add('-I' + extractFilePath(fProj.getAbsoluteSourceName(i)));
for nme in fProj.currentConfiguration.pathsOptions.Includes do for nme in fProj.currentConfiguration.pathsOptions.Includes do
dmdproc.Parameters.Add('-I' + nme); dmdproc.Parameters.Add('-I' + nme);
for nme in fProj.currentConfiguration.pathsOptions.Imports do
dmdproc.Parameters.Add('-J' + nme);
end; end;
//adds all the libman entries //adds the libman entries
with CEMainForm do begin with CEMainForm do begin
Librarymanager.getAdditionalSources(nil, dmdproc.Parameters); Librarymanager.getAdditionalSources(nil, dmdproc.Parameters);
Librarymanager.getAdditionalImport(nil, dmdproc.Parameters); Librarymanager.getAdditionalImport(nil, dmdproc.Parameters);
end; end;
// //
dmdproc.Execute; dmdproc.Execute;
while dmdproc.Running do; while dmdproc.Running do (**);
finally finally
i := dmdproc.ExitStatus; i := dmdproc.ExitStatus;
dmdproc.Free; dmdproc.Free;
lines.Free; lines.Free;
DeleteFile(scf); if not fileExists(scf) then
DeleteFile(scf);
end; end;
if i <> 0 then if i <> 0 then
@ -482,4 +490,3 @@ begin
end; end;
end. end.