From 55c2a73d66c9c24801dbab2fcb9e671d248186e9 Mon Sep 17 00:00:00 2001 From: vincents Date: Mon, 4 Sep 2006 14:50:19 +0000 Subject: [PATCH] lazbuild: implemented loading packages git-svn-id: trunk@9806 - --- ide/lazbuild.lpr | 20 +++++++++++++++++--- packager/packagelinks.pas | 1 + 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ide/lazbuild.lpr b/ide/lazbuild.lpr index 68256f78a0..10f757c885 100644 --- a/ide/lazbuild.lpr +++ b/ide/lazbuild.lpr @@ -32,9 +32,9 @@ uses Classes, SysUtils, CustApp, LCLProc, Forms, Controls, FileUtil, CodeToolManager, Laz_XMLCfg, MacroIntf, - IDEProcs, InitialSetupDlgs, OutputFilter, Compiler, TransferMacros, - EnvironmentOpts, IDETranslations, LazarusIDEStrConsts, LazConf, - BasePkgManager, PackageDefs, PackageLinks, PackageSystem; + IDEProcs, InitialSetupDlgs, OutputFilter, Compiler, CompilerOptions, + TransferMacros, EnvironmentOpts, IDETranslations, LazarusIDEStrConsts, + LazConf, BasePkgManager, PackageDefs, PackageLinks, PackageSystem; type @@ -62,6 +62,11 @@ type var AnOutDirectory: string); // package graph procedure PackageGraphAddPackage(Pkg: TLazPackage); + + // compiler options + function OnSubstituteCompilerOption(Options: TParsedCompilerOptions; + const UnparsedValue: string; PlatformIndependent: boolean + ): string; protected function BuildFile(Filename: string): boolean; function BuildPackage(const AFilename: string): boolean; @@ -142,6 +147,14 @@ begin if FileExists(Pkg.FileName) then PkgLinks.AddUserLink(Pkg); end; +function TLazBuildApplication.OnSubstituteCompilerOption( + Options: TParsedCompilerOptions; const UnparsedValue: string; + PlatformIndependent: boolean): string; +begin + // TODO: real parsing and substution + Result:=UnparsedValue; +end; + function TLazBuildApplication.BuildFile(Filename: string): boolean; begin Result:=false; @@ -262,6 +275,7 @@ begin GlobalMacroList:=TTransferMacroList.Create; IDEMacros:=TLazIDEMacros.Create; + CompilerOptions.OnParseString:=@OnSubstituteCompilerOption; {$WARNING TODO TLazBuildApplication.SetupMacros} end; diff --git a/packager/packagelinks.pas b/packager/packagelinks.pas index 1c9b7b74e8..79ed1999f8 100644 --- a/packager/packagelinks.pas +++ b/packager/packagelinks.pas @@ -730,6 +730,7 @@ begin //end; // finally try the history lists of the Dependency Owner (Project/Package) if (Result=nil) and (Dependency.Owner<>nil) + and assigned(DependencyOwnerGetPkgFilename) and DependencyOwnerGetPkgFilename(Self,Dependency) then Result:=FindLinkWithDependencyInTree(FUserLinksSortID,Dependency); end;