Sfoglia il codice sorgente

* Do not use SetCurrentDir anymore during installations

git-svn-id: trunk@29004 -
joost 10 anni fa
parent
commit
a217fe6cac
1 ha cambiato i file con 22 aggiunte e 29 eliminazioni
  1. 22 29
      packages/fpmkunit/src/fpmkunit.pp

+ 22 - 29
packages/fpmkunit/src/fpmkunit.pp

@@ -4773,21 +4773,14 @@ begin
   {$ifdef HAS_TAR_SUPPORT}
   if not assigned(FTarWriter) then
     begin
-      If (APackage.Directory<>'') then
-        EnterDir('');
+      FGZFileStream := TGZFileStream.create(Defaults.ZipPrefix + APackage.Name + MakeZipSuffix(Defaults.CPU,Defaults.OS) +'.tar.gz', gzopenwrite);
       try
-        FGZFileStream := TGZFileStream.create(Defaults.ZipPrefix + APackage.Name + MakeZipSuffix(Defaults.CPU,Defaults.OS) +'.tar.gz', gzopenwrite);
-        try
-          FTarWriter := TTarWriter.Create(FGZFileStream);
-          FTarWriter.Permissions := [tpReadByOwner, tpWriteByOwner, tpReadByGroup, tpReadByOther];
-          FTarWriter.UserName := 'root';
-          FTarWriter.GroupName := 'root';
-        except
-          FGZFileStream.Free;
-        end;
-      finally
-        If (APackage.Directory<>'') then
-          EnterDir(APackage.Directory);
+        FTarWriter := TTarWriter.Create(FGZFileStream);
+        FTarWriter.Permissions := [tpReadByOwner, tpWriteByOwner, tpReadByGroup, tpReadByOther];
+        FTarWriter.UserName := 'root';
+        FTarWriter.GroupName := 'root';
+      except
+        FGZFileStream.Free;
       end;
     end;
 {$ifdef unix}
@@ -5122,10 +5115,10 @@ begin
               DestFileName:=DestDir+list.ValueFromIndex[i]
             else
               DestFileName:=list.ValueFromIndex[i];
-            FOnCopyFile(APackage, List.names[i], DestFileName);
+            FOnCopyFile(APackage, AddPathPrefix(APackage, List.Names[i]), DestFileName);
           end
         else
-          FOnCopyFile(APackage, List[i], DestDir+ExtractFileName(List[i]));
+          FOnCopyFile(APackage, AddPathPrefix(APackage, List[i]), DestDir+ExtractFileName(List[i]));
       Exit;
     end;
 
@@ -5133,7 +5126,7 @@ begin
   CmdCreateDir(DestDir);
   If (Defaults.Copy<>'') then
     begin
-      Args:=FileListToString(List,'');
+      Args:=FileListToString(List, IncludeTrailingPathDelimiter(GPathPrefix));
       Args:=Args+' '+DestDir;
       ExecuteCommand(Defaults.Copy,Args);
     end
@@ -5146,10 +5139,10 @@ begin
           else
             DestFileName:=list.ValueFromIndex[i];
           CmdCreateDir(ExtractFilePath(DestFileName));
-          SysCopyFile(List.names[i],DestFileName)
+          SysCopyFile(AddPathPrefix(APackage, List.Names[i]),DestFileName)
         end
       else
-        SysCopyFile(List[i],DestDir);
+        SysCopyFile(AddPathPrefix(APackage, List[i]), DestDir);
 end;
 
 
@@ -6609,7 +6602,7 @@ begin
       begin
         ConfigFileContent := TStringList.Create;
         try
-          ConfigFileContent.LoadFromFile(ConfigFileName);
+          ConfigFileContent.LoadFromFile(AddPathPrefix(APAckage, ConfigFileName));
           if Defaults.FPUnitSourcePath='0' then
             begin
               Index := ConfigFileContent.IndexOfName(KeySourcePath);
@@ -6618,7 +6611,7 @@ begin
             end
           else
             ConfigFileContent.Values[KeySourcePath] := Defaults.FPUnitSourcePath;
-          ConfigFileContent.SaveToFile(ConfigFileName);
+          ConfigFileContent.SaveToFile(AddPathPrefix(APAckage, ConfigFileName));
         finally
           ConfigFileContent.Free;
         end;
@@ -6676,12 +6669,12 @@ Var
 begin
   If (Apackage.State<>tsCompiled) then
     MaybeCompile(APackage);
+  Log(vlCommand,SInfoInstallingPackage,[APackage.Name]);
+  if AnArchiveFiles and APackage.SeparateArchive then
+    FinishArchive(APackage);
   try
-    Log(vlCommand,SInfoInstallingPackage,[APackage.Name]);
-    if AnArchiveFiles and APackage.SeparateArchive then
-      FinishArchive(APackage);
     If (APackage.Directory<>'') then
-      EnterDir(APackage.Directory);
+      GPathPrefix := APackage.Directory;
     if AnArchiveFiles then
       begin
         FOnCopyFile:=@AddFileToArchive;
@@ -6732,7 +6725,7 @@ begin
       end;
   Finally
     If (APackage.Directory<>'') then
-      EnterDir('');
+      GPathPrefix := '';
   end;
 end;
 
@@ -6772,7 +6765,7 @@ begin
   Log(vlInfo,SInfoArchivingPackage,[APackage.Name,A]);
   try
     If (APackage.Directory<>'') then
-      EnterDir(APackage.Directory);
+      GPathPrefix := APackage.Directory;
     DoBeforeArchive(Apackage);
     AddPackageMacrosToDictionary(APackage, APackage.Dictionary);
     L:=TStringList.Create;
@@ -6826,7 +6819,7 @@ begin
     DoAfterArchive(Apackage);
   Finally
     If (APackage.Directory<>'') then
-      EnterDir('');
+      GPathPrefix := '';
   end;
 end;
 
@@ -7543,7 +7536,7 @@ begin
   If ResourceStrings then
     begin
       // choose between 2 possible resource files
-      if FileExists(APrefixU + RSJFileName) then
+      if FileExists(Installer.BuildEngine.AddPathPrefix(nil, APrefixU + RSJFileName)) then
         List.Add(APrefixU + RSJFileName)
       else
         List.Add(APrefixU + RSTFileName);