diff options
author | peter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2008-11-18 23:03:18 +0000 |
---|---|---|
committer | peter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2008-11-18 23:03:18 +0000 |
commit | ecb3228bf1fe668fcb0a7db55c817b6e6b11d01a (patch) | |
tree | 1442c2012d6647a5501d00f1155deea1e43c582d | |
parent | c6cc8fda35af6bb1390de0c690ffb6dcea71b4c2 (diff) | |
download | fpc-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.pp | 28 | ||||
-rw-r--r-- | utils/fppkg/pkghandler.pp | 5 |
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]); |