summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpeter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2>2008-11-18 23:03:18 +0000
committerpeter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2>2008-11-18 23:03:18 +0000
commitecb3228bf1fe668fcb0a7db55c817b6e6b11d01a (patch)
tree1442c2012d6647a5501d00f1155deea1e43c582d
parentc6cc8fda35af6bb1390de0c690ffb6dcea71b4c2 (diff)
downloadfpc-ecb3228bf1fe668fcb0a7db55c817b6e6b11d01a.tar.gz
Merged revisions 12163 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk ........ r12163 | peter | 2008-11-19 00:01:47 +0100 (Wed, 19 Nov 2008) | 3 lines * fix building package in currentdir that was broken by the available/installed repository split ........ git-svn-id: http://svn.freepascal.org/svn/fpc/branches/fixes_2_2@12164 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--utils/fppkg/pkgcommands.pp28
-rw-r--r--utils/fppkg/pkghandler.pp5
2 files changed, 19 insertions, 14 deletions
diff --git a/utils/fppkg/pkgcommands.pp b/utils/fppkg/pkgcommands.pp
index 19c618b4e5..cd975ed74b 100644
--- a/utils/fppkg/pkgcommands.pp
+++ b/utils/fppkg/pkgcommands.pp
@@ -192,10 +192,7 @@ Var
begin
if PackageName='' then
Error(SErrNoPackageSpecified);
- if IsLocalPackage then
- P:=InstalledRepository.PackageByName(PackageName)
- else
- P:=AvailableRepository.PackageByName(PackageName);
+ P:=AvailableRepository.PackageByName(PackageName);
BuildDir:=PackageBuildPath(P);
ArchiveFile:=PackageLocalArchive(P);
if not FileExists(ArchiveFile) then
@@ -223,12 +220,17 @@ begin
begin
// For local files we need the information inside the zip to get the
// dependencies
- if IsLocalPackage then
+ if (PackageName=CmdLinePackageName) then
begin
ExecuteAction(PackageName,'unzip');
ExecuteAction(PackageName,'installdependencies');
end
else
+ if (PackageName=CurrentDirPackageName) then
+ begin
+ ExecuteAction(PackageName,'installdependencies');
+ end
+ else
begin
ExecuteAction(PackageName,'installdependencies');
ExecuteAction(PackageName,'unzip');
@@ -244,12 +246,17 @@ begin
begin
// For local files we need the information inside the zip to get the
// dependencies
- if IsLocalPackage then
+ if (PackageName=CmdLinePackageName) then
begin
ExecuteAction(PackageName,'unzip');
ExecuteAction(PackageName,'installdependencies');
end
else
+ if (PackageName=CurrentDirPackageName) then
+ begin
+ ExecuteAction(PackageName,'installdependencies');
+ end
+ else
begin
ExecuteAction(PackageName,'installdependencies');
ExecuteAction(PackageName,'unzip');
@@ -268,7 +275,7 @@ begin
begin
ExecuteAction(PackageName,'build');
ExecuteAction(PackageName,'fpmakeinstall');
- if IsLocalPackage then
+ if (PackageName=CmdLinePackageName) or (PackageName=CurrentDirPackageName) then
begin
// Load package name from manifest
if not FileExists(ManifestFileName) then
@@ -316,14 +323,17 @@ var
AvailP : TFPPackage;
L : TStringList;
status : string;
+ FreeManifest : boolean;
begin
if PackageName='' then
Error(SErrNoPackageSpecified);
+ FreeManifest:=false;
// Load dependencies for local packages
- if IsLocalPackage then
+ if (PackageName=CmdLinePackageName) or (PackageName=CurrentDirPackageName) then
begin
ExecuteAction(PackageName,'fpmakemanifest');
P:=LoadManifestFromFile(ManifestFileName);
+ FreeManifest:=true;
end
else
P:=AvailableRepository.PackageByName(PackageName);
@@ -378,7 +388,7 @@ begin
for i:=0 to L.Count-1 do
ExecuteAction(L[i],'install');
FreeAndNil(L);
- if IsLocalPackage then
+ if FreeManifest then
FreeAndNil(P);
end;
diff --git a/utils/fppkg/pkghandler.pp b/utils/fppkg/pkghandler.pp
index fc556389fe..6310915901 100644
--- a/utils/fppkg/pkghandler.pp
+++ b/utils/fppkg/pkghandler.pp
@@ -20,7 +20,6 @@ type
TPackageHandler = Class(TComponent)
private
FPackageName : string;
- FIsLocalPackage : boolean;
Protected
Procedure Log(Level: TLogLevel;Msg : String);
Procedure Log(Level: TLogLevel;Fmt : String; const Args : array of const);
@@ -34,7 +33,6 @@ type
procedure ExecuteAction(const APackageName,AAction:string);
procedure Execute; virtual; abstract;
Property PackageName:string Read FPackageName;
- Property IsLocalPackage:boolean Read FIsLocalPackage Write FIsLocalPackage;
end;
TPackageHandlerClass = class of TPackageHandler;
@@ -100,9 +98,6 @@ begin
pkghandlerclass:=GetPkgHandler(AAction);
With pkghandlerclass.Create(nil,APackageName) do
try
- if (APackageName=CmdLinePackageName) or
- (APackageName=CurrentDirPackageName) then
- IsLocalPackage:=true;
Log(vlDebug,SLogRunAction+' start',[AAction]);
Execute;
Log(vlDebug,SLogRunAction+' end',[AAction]);